>在初始签出之前,我必须遵循本地计算机上的目录结构:
base_dir/somefolder/someotherfolder/file.txt
结帐后,我想要以下内容:
base_dir/somefolder/someotherfolder/file.txt
base_dir/somefolder/checked_out_folder/new_file.txt
所以基本上签出将新文件添加到已经存在的目录中。但是,我无法将其与SharpSvn一起使用。签出时,它会下载所有本地不存在的文件,不会触及本地已存在的文件或文件夹。
TortoiseSvn似乎能够做到这一点。我在这里读到它应该以某种方式工作,但就像提问的人指出的那样,将选项设置为 true AllowObstructions
没有任何作用。
我的结帐代码(我使用的是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 上的文档非常薄。我希望这里有人可以帮助我。
即使有 .允许障碍物 仍然有可能陷入冲突。
例如,使用允许障碍,已经存在的本地文件将作为新文件的修改版本保留在原位。 但是,如果在其位置添加一个目录,则会出现树冲突。
(我真的建议不要使用 .允许障碍,因为这可以轻松地在另一个文件上提交新文件,而不会注意到您不小心这样做了)
在很多情况下,您可能会遇到障碍物或跳过,因此您应该真正查看通知(.通知客户端或 args 对象上的事件)或更新后的状态。
即使签出到空目录(或不存在的位置)也可能导致冲突......例如,在 svn:external 定义存在问题的情况下。