SVN如何解决“本地添加,更新时输入添加".在*文件夹*上? [英] SVN how to resolve "local add, incoming add upon update" on a *folder*?

查看:224
本文介绍了SVN如何解决“本地添加,更新时输入添加".在*文件夹*上?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的情况:

假设我们有一个包含以下内容的SVN存储库: 我的文件夹 myfolder \ file.txt

Assume we have an SVN repo with the following content: myfolder myfolder\file.txt

现在,我为此仓库创建两个结帐,即co1和co2.

Now I create two checkouts of this repo, co1 and co2.

在co1中,我们修改file.txt. 在二氧化碳中,我们:

In co1 we modify file.txt. In co2 we:

  • svn删除myfolder
  • svn提交
  • 创建一个名为myfolder的新文件夹
  • svn添加myfolder
  • svn提交

现在,如果我尝试在co1中进行更新,则会遇到树冲突:

Now if I attempt an update in co1 I get a tree conflict:

A  +  C myfolder >   local edit, incoming delete upon update
M  +    myfolder\file.txt

我想保留myfolder和修改后的文件,所以我解决了树冲突:

I want to keep myfolder and the modified file, so I resolve the tree conflict:

svn resolve --accept working folder

现在,如果我尝试提交,则会收到"svn:目录'/myfolder'已过期"的信息.如果我尝试使用svn up myfolder解决此问题,则会再次遇到树冲突:

Now if I try to commit, I get "svn: Directory '/myfolder' is out of date". If I try to resolve this using svn up myfolder, I get a tree conflict again:

A  +  C folder >   local add, incoming add upon update
M  +    myfolder\file.txt

好的,所以我们再次尝试svn resolve --accept工作文件夹.但是我们仍然不能提交,得到的消息是"svn:目录'/myfolder'已过期",如果我们对myfolder进行了svn,我们可以回到最后的树冲突.

Okay, so we try svn resolve --accept working folder again. But we still can't commit, we get the same message that "svn: Directory '/myfolder' is out of date", if we do svn up myfolder, we get right back to the last tree conflict.

解决此类冲突的正确方法是什么(当我们希望保留myfolder及其更改时)?

What is the correct procedure to resolve this type of conflict (when we wish to keep myfolder and its changes)?

Windows cmd行脚本来说明:

Windows cmd line script to illustrate:

rmdir /S /Q C:\svntest 
mkdir C:\svntest

cd C:\svntest

svnadmin create repo

svn co file:///c:/svntest/repo co1
svn co file:///c:/svntest/repo co2

cd co1
mkdir folder
echo content > folder\file.txt
svn add folder
svn commit folder -m ""

cd C:\svntest\co2
svn up

cd C:\svntest\co1
svn del folder
svn commit -m ""
mkdir folder
svn add folder
svn commit -m ""

cd C:\svntest\co2
echo changed_content > folder\file.txt
svn up
svn resolve --accept working folder
svn commit -m ""

svn up folder
svn resolve --accept working folder
svn commit -m ""

这是运行该脚本的输出(请注意最后的提交失败):

And here is the output of running that script (note the commit failures at the end):

C:\>rmdir /S /Q C:\svntest  

C:\>mkdir C:\svntest 

C:\>cd C:\svntest 

C:\svntest>svnadmin create repo 

C:\svntest>svn co file:///c:/svntest/repo co1 
Checked out revision 0.

C:\svntest>svn co file:///c:/svntest/repo co2 
Checked out revision 0.

C:\svntest>cd co1 

C:\svntest\co1>mkdir folder 

C:\svntest\co1>echo content  1>folder\file.txt 

C:\svntest\co1>svn add folder 
A         folder
A         folder\file.txt

C:\svntest\co1>svn commit folder -m "" 
Adding         folder
Adding         folder\file.txt
Transmitting file data .
Committed revision 1.

C:\svntest\co1>cd C:\svntest\co2 

C:\svntest\co2>svn up 
A    folder
A    folder\file.txt
Updated to revision 1.

C:\svntest\co2>cd C:\svntest\co1 

C:\svntest\co1>svn del folder 
D         folder\file.txt
D         folder

C:\svntest\co1>svn commit -m "" 
Deleting       folder

Committed revision 2.

C:\svntest\co1>mkdir folder 

C:\svntest\co1>svn add folder 
A         folder

C:\svntest\co1>svn commit -m "" 
Adding         folder

Committed revision 3.

C:\svntest\co1>cd C:\svntest\co2 

C:\svntest\co2>echo changed_content  1>folder\file.txt 

C:\svntest\co2>svn up 
C folder
At revision 3.
Summary of conflicts:
  Tree conflicts: 1

C:\svntest\co2>svn resolve --accept working folder 
Resolved conflicted state of 'folder'

C:\svntest\co2>svn commit -m "" 
Adding         folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date

C:\svntest\co2>svn up folder 
   C folder
At revision 3.
Summary of conflicts:
  Tree conflicts: 1

C:\svntest\co2>svn resolve --accept working folder 
Resolved conflicted state of 'folder'

C:\svntest\co2>svn commit -m "" 
Adding         folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date

推荐答案

我想通了

svn resolve --accept working  PATH_TO_FILE

其结尾应为:

已解决的"PATH_TO_FILE"冲突状态

这篇关于SVN如何解决“本地添加,更新时输入添加".在*文件夹*上?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆