SharpSVN覆盖现有的文件和文件夹



>在初始签出之前,我必须遵循本地计算机上的目录结构:

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 定义存在问题的情况下。

最新更新