如何判断是否使用TortoiseSVN更改了工作文件的远程副本

时间:2013-11-25 16:17:07

标签: svn version-control repository tortoisesvn

使用ToroiseSVN时,可以使用其他方进行的更改更新其本地副本,并签入远程仓库。

如果在本地副本工作时更改了远程文件,则更新目录不会使用远程文件覆盖本地副本(应该如此)。但是,TotoiseSVN的“更新”窗口并不表示存在冲突。

有没有办法在更新时获得此类冲突的指示?

注意:Windows资源管理器视图显示文件已更改,因此这是一种指示,但如果存储库中的多个目录中有多个文件,我想在更新时获取此类列表

1 个答案:

答案 0 :(得分:1)

此行为可能特定于TortoiseSVN。

以下命令提示符会话使用命令行SVN客户端来匹配您的方案。在会话中,我执行以下操作:

  • 查看同一存储库的两个工作副本。
  • 在第一个工作副本中创建名为blocker.txt的文件。
  • 在第二个工作副本中创建另一个名为blocker.txt的文件。
  • 仅在存储库中添加第二个工作副本中的blocker.txt并将其提交。请勿从第一个工作副本中添加blocker.txt。
  • 更新第一份工作副本。

命令提示符会话

C:\>svn --version   | findstr /c:"svn, version"
svn, version 1.7.10 (r1485443)

C:\>svnadmin create C:\Temp\svn-test-repos

C:\>svn co file:///c:/Temp/svn-test-repos C:\Temp\wc1
Checked out revision 0.

C:\>svn co file:///c:/Temp/svn-test-repos C:\Temp\wc2
Checked out revision 0.

C:\>echo My first file  1>C:\Temp\wc1\blocker.txt

C:\>echo My second file  1>C:\Temp\wc2\blocker.txt

C:\>svn add C:\Temp\wc2\blocker.txt
A         Temp\wc2\blocker.txt

C:\>svn commit --message "blocker.txt added" C:\Temp\wc2
Adding         Temp\wc2\blocker.txt
Transmitting file data .
Committed revision 1.

更新第一份工作副本会导致以下错误:

C:\>svn update --non-interactive C:\Temp\wc1
Updating 'Temp\wc1':
   C Temp\wc1\blocker.txt
At revision 1.
Summary of conflicts:
  Tree conflicts: 1

C:\>svn stat C:\Temp\wc1
D     C C:\Temp\wc1\blocker.txt
      >   local unversioned, incoming add upon update
Summary of conflicts:
  Tree conflicts: 1

TortoiseSVN在没有冲突的情况下更新未版本控制的文件,而命令行客户端则存在冲突。

我不知道你是否可以使用TortoiseSVN来获得你想要的行为。您可能必须使用命令行工具。