2011-03-17 66 views
3

我在做許多svn合併和提交。 我經常發生的事情(在每一次提交中)是有一個像a.java b.java foldera folderb等文件的常量集和更多的文件,svn提交對話框始終顯示我我應該提交他們,但文件themselvs沒有改變,它的顯示改變的是它們的合併信息,但實際上我不明白爲什麼它在提交對話框中顯示給我,因爲不管我進行提交對話的多少次合併,總是顯示這些文件對我來說,即使我在源分支我只更改一個文件我做提交我看到這組文件,如果我更改源分支中的另一個文件,併合併到新的分支,然後再次提交我再次看到這組文件像15個文件...) 無論如何知道我該怎麼克服這個好嗎?合併和提交svn一直顯示我的文件沒有變化,但合併信息已更改

謝謝

回答

2

這通常是由於SVN管理合並的方式。它在該文件中添加一個屬性,該屬性說明合併了哪個分支/修訂版本。

因爲在我的經驗(或缺乏)SVN在跟蹤合併不是很大,我用的標誌--ignore-ancestry當我合併。這通常會消除這些問題,並且不會更新mergeinfo屬性。

檢查右側,還有其他一些與同一主題相關的問題。

如果你覺得嘗試新的東西,移動你的資料庫,以水銀或Git的,以避免所有的合併廢話:)。

+0

您好,感謝翔實的答覆,我想問一下你爲了更好地理解這種,如果我用 - 忽略祖先以後就不會意味着SVN不會記得我合併我的分支,版本已經?所以下次我合併,如果我包括以前的修訂我已經合併它會認爲它需要remerge他們會導致我合併問題? – Jas 2011-03-17 16:38:06

+0

爲什麼會git/mercurial刪除合併廢話?我有多個版本的分支,如1.1 1.2 1.3,我們需要從1.1到1.2合併到1.3,無論如何,即使我在git或mercurial上,感謝 – Jas 2011-03-17 16:39:07

+0

關於第一條評論:是的,但是你可以合併修改範圍,這就是我所做的......我並不是說這是最好的,但它是我找到的最好的。關於Git和Mercurial,他們距離svn有多少光年,他們如何管理合並。它們都以不同的方式跟蹤提交和文件更改,這使得合併成爲無憂無慮。在SO中檢查[this other](http://stackoverflow.com/questions/612580/how-do-git-solve-the-merging-problem)帖子,它解釋了git如何管理合並。 – Augusto 2011-03-17 16:54:50

4

這通常造成的svn:合併-info屬性被設置在一個較低的則在樹枝上頂級水平。如果有人在較低級別進行合併,則會發生這種情況。我嘗試在分支級別進行所有合併,以確保在合併時沒有遺漏文件。

如果你知道你有沒有缺失的變化,你可以移動這些SVN的值:合併信息屬性到頂層的分支,然後從下級刪除屬性。

這將防止SVN:從自己的錯誤查看倉庫時diff文件合併統計信息。

+0

「將這些svn:merge-info屬性的值移動到分支的頂層」 - 我該如何做?以及如果我有多個分支1.1,1.2,1.3,1.4,1.5,我該如何移動合併信息以便我不會在所有分支中出現此錯誤? (我做合併總是從1.1到1.2到1.3,並...),謝謝 – Jas 2011-03-19 09:32:39

+0

您可以像任何其他屬性一樣簡單地編輯svn:merge-info屬性。你可以在其上使用'svn pedit'命令。 – 2011-03-21 16:30:38

+0

我仍然不明白爲什麼它發生在我身上。在低於頂層的層次上進行合併的關係是什麼?我得到這個問題的各種文件夾,包括較低級別和頂級... – Jas 2011-03-27 10:07:52