我的项目目录是SVN,但有些文件是按用户而不是版本。在一台PC上我已经重命名并成功提交。但我担心更新其他PC将删除所有这些文件...它将删除$ old-dir-name而不是重命名并保留内容。
运行SVN 1.6。
答案 0 :(得分:0)
svn update
会将您的工作副本带到存储库所具有的状态,这意味着它将删除不再存储在存储库中的文件,并创建现在存储库中的新文件。但由于您重命名了文件,内容不会丢失,因此它位于重命名的文件中。历史也不会迷失。
此处运行您的方案:
重命名工作副本中的文件
Cmd-$> pwd
D:\Projects\C_C++\stackoverflow
Cmd-$> svn rename test_svn_rename_update\test_svn_rename_update.c \
test_svn_rename_update\test_svn_rename_update_renamed.c
A test_svn_rename_update\test_svn_rename_update_renamed.c
D test_svn_rename_update\test_svn_rename_update.c
svn表示将删除旧文件并添加新文件
不提交工作副本
Cmd-$> svn ci -m "renamed"
Deleting test_svn_rename_update\test_svn_rename_update.c
Adding test_svn_rename_update\test_svn_rename_update_renamed.c
Committed revision 718.
svn删除存储库中的旧文件并将新文件添加到其中。更改将提交一定的修订。
现在更新您更新其他工作副本(您现在所处的步骤)
Cmd-$> pwd
D:\Projects\svn_test
Cmd-$> svn update so
Updating 'so':
D so\test_svn_rename_update\test_svn_rename_update.c
A so\test_svn_rename_update\test_svn_rename_update_renamed.c
Updated to revision 718.
svn说它已将工作副本更新为某个版本,它删除了一个文件并添加了另一个文件,在重命名的情况下它是同一个文件但现在有另一个名称。
你不应该担心丢失任何内容,你甚至可以从第二台电脑上删除工作副本(使用文件系统NOT svn delete !!!)并再次检查。这将产生同样的效果。
如果您仍然担心,只需将其他工作副本压缩并执行svn update
,看看会发生什么!