Subversion:检测重命名的文件夹

Pat*_*rik 2 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]
Run Code Online (Sandbox Code Playgroud)

然后

svn add [to-folder]
Run Code Online (Sandbox Code Playgroud)

我没有收到“删除命令”的错误,但收到了“添加命令”的错误,说“ [到文件夹]已经在版本控制下”。

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

alr*_*roc 5

您在这里遇到几个问题:

  1. 您有多个人共享一个工作副本。这是一个坏主意。当您执行此操作时,人们很容易踩到彼此的更改并提交尚未准备好要提交的内容。您已经失去了所有责任制-谁更改了什么?每个人都在处理相同的文件,因此现在无法知道谁做了什么。每个人都应该在自己的工作站上(如果需要在远程系统上工作,也可以在自己的主目录下)拥有自己的工作副本。
  2. 上面提到的附录:您的提交消息描述了为什么要进行更改。如果每个人都共享一份工作副本,并且只有一个人在提交,那么您如何记录更改历史记录(“为什么”)?
  3. 您的人员没有正确使用工具。如果您使用的是工作副本,则所有操作都必须使用svn子命令来完成。句号
  4. 您每天要结账吗?在适当的Subversion工作流程中无需这样做。

回答核心问题:svn st -u用于查找本地或服务器上的所有更改。良好的做法是svn update经常运行以尽快获取更改以防止出现此类问题,并在更改后尽快提交目录结构更改(假定它不会破坏其他内容),以便每个人都知道变化。

但是,除了团队成员之间良好的沟通以及正确使用工具之外,这是无可替代的。

  • 当你说“人民”(复数)和“工作副本”时,我读到了一个 WC 的人数。简短的回答是 SmartSVN *尝试* 为您解决问题(可能在某些情况下不能),而标准客户端根本没有该功能,因为开发人员可能宁愿不花精力在功能上或多或少地猜测您的意图,偏爱可能具有较少危险副作用的功能。 (2认同)