gpt4 book ai didi

svn - Subversion 不将更改合并到重命名的文件中?

转载 作者:行者123 更新时间:2023-12-03 10:39:41 24 4
gpt4 key购买 nike

我在使用 subversion 时遇到以下问题:

我目前正在处理我的项目的主干并计划进行一些重构(包括重命名文件或将文件移动到不同的目录)。

与此同时,其他人正在一个分支上从事同一个项目。

有时我想将在分支上所做的更改合并回主干。这包括对已在主干上重命名的文件(在分支上)所做的更改。

我做了一些测试,似乎 subversion 无法遵循这些更改,或者我错过了一些东西(这是我所希望的)。我使用以下脚本对此进行了测试(应该在 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 命令生成重命名文件(旧->新)的映射而在某种程度上自动化:
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 - 但不要屏住呼吸,它从 2002 年就开始营业了。

关于svn - Subversion 不将更改合并到重命名的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/187454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com