2010-01-12 25 views
5

作爲一名自由開發人員,我喜歡將自己的所有開發工作都保存在自己的SVN服務器上,以便持續集成以及對何時進行更改以及何時進行更改。在多個SVN服務器上保存代碼

我現在正在與一位也在內部使用SVN的客戶合作,他們顯然會喜歡我在他們的SVN服務器上與他們的開發團隊合作。

這是一般的很好,但它也會導致我放棄在這個項目上的工作實踐,失去了我的內部簿記方法。如果這種情況發生很多,那麼我最終會得到相當寬鬆的工作標準 - 最終因項目而異(我顯然不想)。

是否有一些創造性的方式來獲得兩全其美的好處,並且在兩個SVN服務器上提交代碼時都存在代碼?我不介意在預先或每次提交/更新時進行一些額外的工作,以便將其脫離。

svnsync看起來可能是一個不錯的選擇。有沒有人試過這個?有沒有人有其他建議?

回答

2

我不確定是什麼問題。你使用不同的SVN網址,但其他一切都是一樣的。 「記賬」是什麼意思?也許歸結爲誰擁有代碼 - 如果是他們,他們完全有權要求你使用他們的版本控制系統。而且,由於這聽起來像你正在與一個開發團隊合作,他們佔你數目的不多。

因爲有其他的開發人員,你顯然必須努力了他們的資料庫,以確保您始終擁有最新的代碼,從而避免衝突等

如果您擔心保持代碼的副本(假設這是合法的),有很多方法可以實現這一點,例如,定期將指向其服務器的工作文件夾導出到指向您的服務器的另一個工作文件夾中,然後提交。

1

您可以定期(每週?)svndump您的客戶端存儲庫並將其導入到您自己的服務器中,以便您可以爲計費目的或其他目的執行分析。

我能想到的唯一問題就是您的客戶可能會爲您做到這一點感到高興。

0

當然版本控制系統有助於代碼的共享和管理。如果您使用兩個存儲庫,事情會非常迅速地變得非常混亂。我隨大流和使用任何公司要求你去得

1

我可以在這裏看到兩種不同的方法,要麼你繼續在你的倉庫工作,然後做手工,當你覺得你的代碼是最多滴自己的資源庫比肩。另一種方法是查看svn提交鉤子 - 即在提交完成後運行的腳本。從這樣的腳本我假定你可以很容易地提交到另一個存儲庫。

我假設你的合同可以讓你保持代碼爲自己爲好,否則你很可能做任何你的客戶告訴你的代碼。

0

如果您只想列出您在Subversion中所做的更改(我猜,每週提交次數,問題列表已經修復......),您可以編寫一個簡單的Java應用程序,查詢任何 Subversion版本庫用於您的更改。在此之後,它只是一個應用程序指向正確的存儲庫的問題。

有幾個易於使用的Subversion庫,我沒有SvnKit特別的問題。

0

使用客戶端的庫

一種解決方案是隻直接使用客戶的資料庫。任何其他不屬於此處的「東西」,只與您的簿記有關,如您的項目管理,計時等,可能會在您的本地存儲庫中進行。你可以保留兩個獨立的工作副本,儘管你可以在本地資源庫中設置一個指向客戶端存儲庫的svn:external,如果你想要有點棘手。

只要您和客戶都對您的提交細緻程度感到滿意,就應該可以工作。您也可以考慮在您客戶的存儲庫中的分支中工作,並在對工作滿意時合併到主幹中。它還有一個優點(對於您的客戶),客戶可以備份他們可能喜歡的所有正在進行的工作。

的Git與Subversion集成

另一種解決辦法是使用git本地,並利用其ability to work with Subversion的。您可以在輕量級本地分支中保留正在進行的工作。

相關問題