Visual studio 从VisualStudio项目创建subversion存储库

Visual studio 从VisualStudio项目创建subversion存储库,visual-studio,svn,Visual Studio,Svn,我正在尝试使用subversion,现在很艰难。文件有时不清楚。基本上,我正在尝试找出如何合并,但这会导致冲突,因为存储库中不应该包含这些文件 我发出了svn导入命令。将*.suo、bin和obj文件夹放入存储库。然后,我将svn:ignore命令添加到每个dll的顶层文件夹中,以忽略*.suo、*.user bin和obj。但这仍然会导致问题,因为编译项目(50多个DLL)会创建这些文件夹,并且在这之前它们就存在于存储库中,因此会导致冲突 因此,我假设我需要创建没有这些文件的存储库。但据我所知

我正在尝试使用subversion,现在很艰难。文件有时不清楚。基本上,我正在尝试找出如何合并,但这会导致冲突,因为存储库中不应该包含这些文件

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

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

谢谢
JM

合并的第一条规则:始终将a作为合并目标。也就是说,签出中只有版本化的文件,没有修改、添加、删除、取消版本化或忽略的文件和文件夹。我通过使用TortoiseSVN的Cleanup命令来确保这一点,勾选所有内容:

从我对你问题的理解来看,似乎你已经添加并提交了一些文件和文件夹,这些文件和文件夹本来应该是
SVN:ignore
d。因此,使用TortoiseSVN,选择文件,然后选择
TortoiseSVN->Unversion并添加到忽略列表->*.ext

对文件夹执行相同的操作,但改为按名称删除和忽略

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

然后,提交更改

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

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


希望这有帮助。

我发现答案是在配置文件中使用
全局忽略
,可以在以下位置找到:

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

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

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

但是全局忽略实际上是局部全局忽略。它对您的计算机是本地的,但对您的所有命令/存储库是全局的。执行任何导入操作的任何其他人都需要更新其文件,否则他们导入的任何项目都会发生冲突。

您使用的是Visual Studio吗?然后,使用。这将做几件事:

  • 它将自动不向存储库提交导致您如此心痛的特定于用户的VisualStudio文件
  • 它允许您从VisualStudio内部使用Subversion。不需要单独的客户
  • 它将确保使用
    \u svn
    文件夹来存储Subversion工作目录信息,而不是“.svn”

还考虑一个预提交钩子,它可以防止用户提交这些类型的文件。我已经用了很多年了。它可用于防止用户提交以

*.suo
.user
或名为
bin
obj
的目录结尾的任何文件。这可以确保团队中的其他开发人员不会做令人讨厌的事情。

很难理解您的要求。您是导入还是合并?你试过什么?怎么搞的?你以为会发生什么?我在进口。我正在学习这个工具,所以我没有什么期望。我导入、创建了一个分支、做了一些更改并尝试合并。由于*.suo文件,我收到了冲突。意识到它们不应该在那里(以及*.user、bin和obj),我尝试删除它们并将它们添加到svn:ignore。但这不起作用,因为它们以前存在于存储库中。因此,在我看来,我必须创建一个没有它们的存储库。如果您使用代理SVN之类的插件,它将允许您从VS IDE内部添加到源代码管理,并将在SVN存储库中创建正确的文件/文件夹结构。注意:我是这个插件的作者。你害怕冲突吗?你不应该这样-他们应该在合并中出现。关于全局忽略:在Subversion 1.8中,你可以将其过滤到每个人的签出。你误解了。如果您更改一行代码,那么在不相关的文件中会出现200多个冲突,这使得合并比手工更改成本更高。如果你不明白这个问题,问我,我会澄清。听起来你的回答不可靠。您可以如上所示将全局忽略添加到目标分支上,然后编辑mergeinfo,使其看起来像是发生了合并-但之后必须手动合并每个更改。痛苦,是的,但从长远来看是值得的。知道这一点很好。它可以在忽略指定文件的同时进行导入吗?提交不是问题,导入是问题。您可以尝试从repo中删除文件。否则,使用预提交钩子停止包含这些文件的提交。我不知道您可以从存储库中删除这些文件。这可能会有帮助,谢谢!