我到inital结帐前在本地机器上的目录结构如下:SharpSVN覆盖现有文件和文件夹
base_dir/somefolder/someotherfolder/file.txt
结帐后,我想以下几点:
base_dir/somefolder/someotherfolder/file.txt
base_dir/somefolder/checked_out_folder/new_file.txt
所以基本上结账将新文件添加到已存在的目录中。然而,我无法与SharpSvn合作。检出时,它会下载所有不在本地存在的文件,不会触及本地已存在的文件或文件夹。
TortoiseSvn似乎能够做到这一点。我读here,它应该以某种方式工作,但像问人指出,将选项AllowObstructions
设置为true什么都不做。
我结账代码(我使用SharpSVN 1.7):
using (SvnClient client = new SvnClient()) {
client.Progress += new EventHandler<SvnProgressEventArgs>(cl_Progress);
SvnCheckOutArgs sco = new SvnCheckOutArgs();
sco.Depth = SvnDepth.Infinity;
sco.AllowObstructions = true;
client.CheckOut(from, to, out result);
}
我不知道该怎么办,就SharpSvn的文档是非常薄的。我希望这里有人能够帮助我。
感谢您的回复! '.Resolve'函数似乎是一条路。我通过'.Notify'事件检查,确实发生树冲突。我尝试过'client.Resolve(to,SvnAccept.Merged);',但没有看到任何行为改变。我的方式是否正确? – Stuffy
如果您使用的是1.7版,只能将树冲突标记为已解决,但这不会更改您的工作副本,而不会更改冲突状态。它确实取决于树冲突你应该/可以做什么,但在很多情况下.Revert()可能比.Resolve更好。 –
是的! '.Revert'做了诡计。感谢您指点我正确的方向。 – Stuffy