2009-11-17 24 views
3

這裏的交易: 我剛開始一個新的工作,這裏的源代碼控制基本上是無用的。所有的開發人員(大約10人)都在同一個開發站點上測試他們的代碼,除了將更改提交給SVN之外,沒有辦法測試更改,然後自動更新開發站點。 (當別人打破某些東西時,我們甚至不會開始討論頭痛問題,而你必須弄清楚爲什麼你的東西現在不能正常工作....)Subversion +一些其他的VCS(Git,Hg等)在同一個工作副本中

因此,不要像Ctrl + S那樣做,而是刷新瀏覽器看到我的更改,你必須按Ctrl + S,svn commit,刷新頁面。 當然,由於每個人每天都要這樣做一百萬次,所以從來沒有任何提交信息,所以svn歷史是沒有用的。無論如何,因爲我現在是新人,爲了我自己的理智,我想在本地使用其他一些源代碼控制系統,這樣我就可以自動提交項目,並且能夠輕鬆地回滾。

是否有可能在svn的同時使用例如mercurial? 我會基本上使用svn來查看我的更改,然後mercurial跟蹤我的更改。

任何其他想法也歡迎。 謝謝!

UPDATE-

感謝您的所有答案。 不幸的是,在這種情況下沒有人真正適合我。也許我沒有解釋正確。 我不想同步回購。我需要的是能夠像兩個不同的存儲庫檢出一樣生活在同一個地方。 所以,如果我做svn status我比較常規公司回購。但如果我做hg status我正在比較自己的個人回購,以幫助我保持理智。 Thx guys

+0

也許我很困惑關於你目前的困境,但不能你只是一個虛擬主機條目添加到httpd.conf中爲localhost來查看您的網站更改,然後運行svn更新拉最新更新到本地計算機之前測試承諾? – 2009-11-17 18:12:22

回答

4

對於Mercurial Stack Overflow有guide其中描述了Subversion interaction choices in detail。目前有三種方法:hg convert,hgsubversionhgsvn。詳情請參閱指南。

(我自己的兩分錢是hgsubversion不處理所有存儲庫正常,但,當它,處理它們非常順利。當它沒有我有一些成功的hgsvn

UPDATE :

你說:。

「感謝所有的答案不幸的是,沒有人真的適合我這種情況也許我沒有解釋是正確的,我不想回購之間的同步內容我需要的是能夠擁有兩個不同的存儲庫checko住在同一個地方。所以如果我做svn狀態,我會比較常規公司的回購。但是,如果我做的汞狀態,我比較反對我個人的回購協議,以幫助我保持清醒。」

啊,我明白了。最簡單地說,是的。但你可能不想。你可以從Subversion中籤出,從Mercurial樹手動複製你的.hg目錄,然後運行命令。你幾乎可以肯定想要svn ignore.hg*文件,並且在你的.hgignore上加**.svn。但是你不想這麼做,除非結帳不是由您編輯的,而是偶爾從原始存儲庫中加入svn updatehg pull。如果您還在編輯您,寫入錯誤,而您將寫入最終將簽入某個您不想在其中的某個存儲庫的內容。

如果我正確理解你,你會仍然受益於使用一個Mercurial Subversion的橋樑。例如,您可以非常容易地使用hgsubversionhg status來與您的本地Mercurial存儲庫進行比較,並將hg svn status與遠程Subversion存儲庫進行比較。即使你沒有同步,你只是比較你的文件到一個存儲庫和另一個,它仍然好得多瞭解一個系統,並且不會將不需要的狀態從一個VCS溢出到另一個。

2

雖然你想要確保從新的scm中排除.svn目錄,反之亦然,所以它們不會跟蹤每個其他元數據,但你可以在svn的一側使用git,bazaar或mercurial。

就IDE支持而言,我知道Eclipse只允許您一次有一個活動的源代碼管理。我不確定NetBeans或IntelliJ。在這種情況下,你可以讓IDE控制svn並從命令行執行你的命令。

另一個你可能想要看的選擇是用svn分支......你能不能從本地的分支工作,然後根據需要合併到公共主線?這可能會導致更多的痛苦。

祝你好運,並遺憾聽到你的情況。

+1

我理解這個問題的方式完美地回答了它。據我瞭解,SVN提交需要更新的測試網站,並提交給「私人」版本控制是爲了遏制變化的有用塊頻繁。當你必須從svn更新以提交svn,然後冒着在你的hg commit中混合外部更改和你自己的風險時,它會變得棘手。我知道這可能在git中,猜測對於hg和bzr也是一樣。 – 2009-11-17 21:03:19

3

git svn是你的朋友。

git svn clone repository_url 
# edit 
git commit 
# edit 
git commit 
# send all your changes to remote svn 
git svn dcommit 
+1

我瞭解,提出的工作流AJL先生的初衷寧願有更頻繁的進入SVN信息(以更新的測試系統)比與git/HG /什麼(爲了保持有意義的提交信息的歷史)​​。 git-svn反過來工作,例如你提交第一個Git和再批量提交一切與dcommit使用svn – 2009-11-18 09:02:01

2

hgsubversion擴展善變讓你以同樣的方式混帳SVN確實使用水銀作爲一個SVN客戶端。

hg clone svn+http://python-nose.googlecode.com/svn nose-hg 

之後,您的推和拉將自動進入/從遠程svn服務器也。

0

您可以在一個工作副本中使用多個VCS。我在一個工作副本中測試了bazaar和git,這個工作副本實際上是用SVN(我當時的主要VCS)跟蹤的。所以,我在那裏有一個.svn,一個.bzr和一個.git目錄。一點都不麻煩。當然,需要智能忽略設置。

相關問題