Subversion:检测重命名的文件夹

时间:2013-03-27 16:29:09

标签: svn directory rename move

这是我的情况:我有一个从svn检出的项目的本地副本。我正在研究Linux服务器。我在工作日的开始执行结账,然后我和其他人编辑项目中包含的文件/文件夹。在一天结束时,我必须对svn进行更改。

我正在使用命令svn status .进行修改,然后对新文件/文件夹和已删除的文件/文件夹执行svn add [filename]svn delete [filename]

我只对重命名的文件夹有问题。我知道在svn中重命名文件夹的正确方法是命令svn move [from-folder] [to-folder]。 但是,如果有人使用mv [from-folder] [to-folder]重命名文件夹呢?

如果我这样做:

svn delete [from-folder]

然后

svn add [to-folder]

我的'删除命令'没有错误,但是“添加命令”出错,说“[to-folder]已经受版本控制”。

如何检查文件夹是否已重命名?我怎样才能正确提交更改?

2 个答案:

答案 0 :(得分:4)

这里有几个问题:

  1. 您有多个人共享一个工作副本。这是一个坏主意。当你这样做时,人们很容易踩到彼此的变化并提交尚未准备好的事情。你已经失去了所有责任 - 谁改变了什么?每个人都在处理相同的文件,所以现在不可能知道谁做了什么。每个人都应该在自己的工作站上(或者在他们自己的主目录下,如果你必须在远程系统上工作)拥有自己的工作副本。
  2. 上述要点的附录:您的提交消息描述了您提交更改的原因。如果每个人都在分享一份工作副本,并且只有一个人提交,那么您如何记录您的更改历史记录(“为什么”)?
  3. 您有人没有正确使用这些工具。如果您处于工作副本中,则必须使用svn子命令完成所有操作。完全停止。
  4. 你每天都在退房吗?在适当的Subversion工作流程中没有必要这样做。
  5. 回答核心问题: 使用svn st -u在本地或服务器上查找任何更改。最好经常运行svn update以尽快获取更改以防止此类问题,并在制作后尽快提交目录结构更改(假设它不会破坏其他内容),以便每个人都知道这些变化。

    但是团队成员之间的良好沟通和正确使用工具是无可替代的。

答案 1 :(得分:1)

svn -u status为您提供本地和远程更改的列表,因此您可以提前知道是否有任何此类更改。

此外,svn还具有文件锁定功能,因此如果您的团队无法达成协议而无法跨越其他人的工作,则此功能可以提供帮助:)。虽然可以窃取锁,但svn lock [[your file]]会给你一些安全保障。见the documentation:)