2

我的项目目录在 SVN 中,但有些文件是每个用户的,没有版本控制。在一台 PC 上,我已将其重命名并成功提交。但我担心更新另一台 PC 会删除所有这些文件......它会删除 $old-dir-name 而不是重命名它并保留内容。

运行 SVN 1.6。

4

1 回答 1

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 表示它已将工作副本更新到某个版本,并且已删除一个文件并添加了另一个文件,在重命名的情况下,它是同一个文件,但现在有另一个名称。

您不必担心丢失任何内容,您甚至可以从第二台电脑上删除工作副本(使用文件系统而不是 svn delete !!!)并再次检查。这将具有相同的效果。

如果您仍然担心,只需将另一个工作副本并排压缩并执行一下svn update,看看会发生什么!

于 2013-09-26T19:50:50.113 回答