0

我正在尝试使用颠覆,并且遇到了困难。文档有时不清楚。基本上我试图弄清楚如何合并,但这会导致冲突,因为文件不应该包含在存储库中。

我发出了一个 svn import 命令。这将 *.suo 和 bin 和 obj 文件夹放在存储库中。然后我将 svn:ignore 命令添加到每个 dll 的顶级文件夹以忽略 *.suo、*.user bin 和 obj。但这仍然会导致问题,因为编译项目(50+ dll)会创建这些文件夹,并且因为它们在这导致冲突之前就存在于存储库中。

所以我假设我需要创建没有这些文件的存储库。但据我所知,我不能在没有工作目录的情况下使用 svn:ignore 命令。也许乌龟 gui 可以做到,但我正在尝试学习工具本身。如果它不能做到这一点,我想知道。

谢谢JM

4

3 回答 3

0

合并的第一条规则:始终将原始结帐作为合并目标。这意味着,结帐时只有版本化文件,没有修改、添加、删除、未版本化或忽略的文件和文件夹。我通过使用 TortoiseSVN 的 Cleanup 命令确保这一点,勾选所有内容:

原始清理

根据我对您的问题的了解,您似乎已经添加并提交了一些svn:ignore最初应该被 d 的文件和文件夹。因此,使用 TortoiseSVN,选择文件,然后选择TortoiseSVN -> Unversion and add to ignore list -> *.ext

TortoiseSVN 的 Unversion-Ignore 功能

对文件夹执行相同的操作,但是Delete and ignore by name

这样做是在包含文件/文件夹模式集的包含文件夹上svn delete添加一个属性。svn:ignore

然后,提交更改。

之后,按照上面的详细说明执行 SVN 清理以删除现在忽略的文件和文件夹,然后进行合并。

值得注意的是,VisualSVN会自动svn:ignore为新添加到解决方案的项目添加模式。

希望这可以帮助。

于 2013-08-13T12:32:11.360 回答
0

我发现答案是global-ignores在配置文件中使用,可以在以下位置找到:

C:\Users\%User%\AppData\Roaming\Subversion\config

我尝试使用svn:ignoreand 似乎在短期内有效。尝试进行合并,它会导致冲突。配置文件应如下所示:

[miscellany]
global-ignores = *.suo *.user bin obj

但是 global-ignores 实际上是一个局部的 global-ignores。它在您的机器上是本地的,但对您的所有命令/存储库都是全局的。任何其他进行任何导入的人都需要更新他们的文件,否则他们导入的任何项目都将遭受冲突。

于 2013-08-13T15:36:02.143 回答
0

你在使用 Visual Studio 吗?然后,使用AnkhSVN。这将做几件事:

  • 它不会自动提交特殊的用户特定的 VisualStudio 文件,这些文件会给您的存储库带来如此多的痛苦。
  • 它允许您从 VisualStudio 内部使用 Subversion。无需单独的客户端。
  • 它将确保使用_svn文件夹来存储 Subversion 工作目录信息而不是`.svn。

另外,考虑一个预提交钩子,它会阻止用户提交这些类型的文件。我有一个我用了很多年的。它可用于防止用户提交任何以*.suo,.user或名为binand的目录结尾的文件obj。这可以确保您组中的其他开发人员不会做讨厌的事情。

于 2013-08-14T12:13:34.173 回答