2

这是我的情况:我有一个从 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] 已经在版本控制之下”。

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

4

2 回答 2

5

您在这里有几个问题:

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

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

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

于 2013-03-27T18:29:29.000 回答
1

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

此外,svn 具有文件锁定功能,因此如果您的团队无法就不跨过他人的工作达成协议,此功能可以提供帮助:)。svn lock [[your file]]给你一些安全,虽然锁可能被盗。请参阅文档:)

于 2013-03-27T17:59:01.193 回答