2010-02-05 97 views
22

我對Subversion和Subclipse都很新,並且看到一些問題,導致我相信在更新到頭部和同步之間存在差異。具體而言,我發現當我嘗試恢復(使用subclipse歷史記錄)時,我經常會收到一條消息,指出「無法從路徑自己的未來歷史中反向合併範圍,請先嚐試更新」。我的同步應該確保我的分支上的所有文件的頭部版本在REPO上,但是做一個「更新到頭部」確實解決了這個問題......所以給出了什麼?我試圖檢查SVN控制檯,看看有什麼變化,但它不是很詳細。SVN同步和更新到頭(subclipse)

想法?

我有第二個問題,但我假設第一個問題的答案將闡明它。如果你很好奇,有時間閱讀,我也會輸入。這是場景...我已經從「Production」標籤分支了所有文件,並開始在我的項目上工作。經過幾次提交後,我檢查了一個已更改的文件的歷史記錄,並注意到「粗體」版本(根據文檔,這應該是頭)低於我的所有提交。就好像我擁有的​​不是頭。但是,頭只是項目的最新版本嗎?所以我錯過了什麼。

感謝您的回覆,並花時間閱讀本文!

回答

2

我認爲你的假設,即同步更新到HEAD是假的。如果在Subclipse的說法中,「同步」意味着「提交」,那麼它肯定是錯誤的,因爲提交不會更新您的工作副本。您承諾在HEAD後必須明確更新。

這使我想到你的第二個問題:我認爲粗體行低於其他提交的原因是因爲上述原因—提交不更新。這意味着您可以對文件進行更改,然後查看另一個文件並將其視爲比HEAD更舊,因爲這些其他文件還未被引導至HEAD。

這篇文章可以幫助清理混合修訂版本的概念:http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

我也鼓勵您與SVN documentation熟悉,與插件和擴展Subversion的工作總是變得更容易,當你瞭解底層SVN系統工作。

+0

嘿麥克, 我看了看那篇文章,但我不能完全確定適用。雖然提交不會更新您的工作副本,但應同步。我不僅看到即將發生的變化,而且看到即將來臨這與更新不一樣嗎? – gergesi 2010-02-05 19:00:03

+1

啊,答案是在那篇文章中,但在有關文件夾的部分!當我提交文件時,它的父文件夾不會移動到我的修訂版本。它知道修訂(存在於歷史中)但不會向上移動。同步忽略了這一點,但是HEAD的更新解決了這個問題。 – gergesi 2010-02-05 19:46:10

26

有區別。當您使用「同步」視圖時,只更新視圖中的項目。在Subversion中,每次修改子文件時,文件夾也會有一個修改版本。但是,由於這些內容沒有出現在視圖中,因此它們永遠不會更新。在項目上進行團隊>更新時,所有文件夾和文件都會更新爲統一修訂版本。我有幾個博客文章解釋這一點:

這一個解釋工作拷貝混合修訂版本的核心SVN的概念,也必須理解這一點:

http://markphip.blogspot.com/2006/12/mixed-revision-working-copies.html

第二條顯示功能在Subclipse的來處理這個:

http://markphip.blogspot.com/2006/12/subclipse-synchronize-feature-show-out.html

由於第二博客寫,最Subclipse的用戶發現他們不喜歡,即使它這個特性,他lps有這個問題。所以它在當前版本中默認關閉。我不認爲任何人再使用它。

最重要的是偶爾在您的項目中使用團隊>更新,以使其達到統一的修訂版本。

馬克

+0

謝謝@Mark!這和你的鏈接的博客文章確實幫助我清除了SVN和Subclipse中的一些東西。 – 2010-08-16 17:00:43