我有以下問題使用subversion:Subversion沒有將更改合併到重命名的文件中?
我目前正在研究我的項目的主幹,並計劃做一些重構(其中包括重命名文件或移動文件到不同的目錄)。
與此同時,別人正在分支上的同一個項目上工作。
有時候我想合併在分支上所做的更改回幹線。這包括對在中繼上重命名的文件(在分支上)所做的更改。
我做了一些測試,似乎顛覆不能跟蹤這些變化,或者我錯過了someting(這是我所希望的)。我測試了這個使用下面的腳本(應該在bash工作,假定有一個SVN倉庫處的「http://myserver/svn/sandbox」):
svn co http://myserver/svn/sandbox
cd sandbox/
mkdir -p MyProject/trunk MyProject/branches MyProject/tags
cat - <<EOF >MyProject/trunk/FileOne.txt
Test
1
2
EOF
svn add MyProject
svn commit -m "init"
# create a branch
svn copy http://myserver/svn/sandbox/MyProject/trunk http://myserver/svn/sandbox/MyProject/branches/Branch_1 svn copy http://myserver/svn/sandbox/MyProject/trunk http://myserver/svn/sandbox/MyProject/branches/Branch_1
# rename the file
svn move MyProject/trunk/FileOne.txt MyProject/trunk/FileTwo.txt
svn commit -m "renamed file"
svn update
# change the content of FileOne in branch
cat - <<EOF >MyProject/branches/Branch_1/FileOne.txt
Test
2
3
EOF
svn commit -m "changed branch"
# I now try to merge the changes in FileOne back to FileTwo
cd MyProject/trunk/
svn merge -r1:HEAD http://myserver/svn/sandbox/MyProject/branches/Branch_1
# but this yields the following message:
# Skipped missing target: 'FileOne.txt'
任何幫助是極大的讚賞。
編輯: 也許由mikegrb建議的過程可以通過自動稍微通過首先產生地圖上從SVN log命令在樹幹上重命名的文件(OLD->新):
svn log -v
------------------------------------------------------------------------
r33 | sme | 2008-10-09 15:17:54 +0200 (Do, 09 Okt 2008) | 1 line
Changed paths:
D /MyProject/trunk/FileOne.txt
A /MyProject/trunk/FileTwo.txt (from /MyProject/trunk/FileOne.txt:31)
resulting map: {FileOne.txt => FileTwo.txt}
現在使用這個映射到在分支上生成的補丁文件中更改文件名。
原文:
Index: FileOne.txt
===================================================================
--- FileOne.txt (.../trunk) (revision 31)
+++ FileOne.txt (.../branches/Branch_1) (revision 34)
@@ -1,3 +1,3 @@
Test
-1
2
+3
修改:
Index: FileTwo.txt
===================================================================
--- FileTwo.txt (.../trunk) (revision 31)
+++ FileTwo.txt (.../branches/Branch_1) (revision 34)
@@ -1,3 +1,3 @@
Test
-1
2
+3
只是一個想法,還沒有做呢。
看起來他們把這個bug推到了1.8版。這只是說'還沒有'的另一種方式。自從2002年開放以來,它開始越來越像「沒有」過。 – 2009-06-18 00:34:57