我正在與仍在運行版本1.4的第三方Subversion存儲庫進行交互,並且使它們升級的可能性接近於零。所以,當然,我在這個倉庫中的工作是我做過的合併工作量最大的工作,而且我沒有任何mergeinfo可以使用。有什麼方法可以在Subversion 1.4中僞造合併跟蹤?
有沒有一個很好的工作流程可以推薦用於跟蹤1.4版本庫中的分支和合並?提交消息和/或屬性的東西?還有別的嗎?
我正在與仍在運行版本1.4的第三方Subversion存儲庫進行交互,並且使它們升級的可能性接近於零。所以,當然,我在這個倉庫中的工作是我做過的合併工作量最大的工作,而且我沒有任何mergeinfo可以使用。有什麼方法可以在Subversion 1.4中僞造合併跟蹤?
有沒有一個很好的工作流程可以推薦用於跟蹤1.4版本庫中的分支和合並?提交消息和/或屬性的東西?還有別的嗎?
Subversion 1.4沒有本地合併跟蹤功能。由於Subversion具有本地API,因此很可能某些第三方客戶端具有內置合併跟蹤器。
1.5以前版本中,假設您通過將合併信息添加爲提交消息的一部分來跟蹤合併。你也試圖避免從項目的根源去做櫻桃採摘和合並。否則,事情開始變得非常複雜。
我會使用標記來標記我的合併點。例如,我將有一個標記5.1->trunk
,標記我從5.1分支到樹幹的最後一個合併點。尋找標籤而不是通過SVN日誌尋找合併評論要容易得多。
我想你也可以使用svn:merge-info
屬性,因爲它沒有被用在你的Subversion版本中。如果將其格式化爲標準svn:mergeinfo屬性格式,可能會非常有幫助。也許有一天,他們會升級,而你的「svn:mergeinfo」屬性可能會對你有所幫助。
然後,這可能是您不應該使用svn:mergeinfo屬性的最佳理由。弄亂它的格式化,並且升級後的1.5版本的Subversion也會拋出conniptions。在服務器升級之前(如果升級),最好使用local:mergeinfo
之類的東西。
大衛說得對,Subversion沒有1.4版本中的任何合併跟蹤支持。但是,有svnmerge腳本表示當前的Subversion合併跟蹤功能已經建模。一些項目,如Python,成功地使用它來維護長期和短期分支。
根據項目的不同,使用bzr-svn,git-svn或hg-subversion可能會讓您更接近您要查找的內容。國際海事組織,bzr-svn工作得相當好,並支持分支機構的真正合並(另一個要求您使用rebase工作流程)。我已經在幾個項目上成功地使用了它,但有一些注意事項。例如,如果你的項目使用外部數據,那麼使用這些工具的故事吸引力就會小得多,因爲它們都不支持外部數據。