.csproj文件采用xml格式,似乎Visual Studio以随机顺序添加元素。 Perforce merge将.csproj文件视为文本文件(订单很重要)。这导致了合并的噩梦。有没有办法如何:
更新
似乎已经有功能请求 - http://p4ideax.com/ideas/585/intelligent-support-for-xml-when-doing-merges 虽然它还没有足够的票数。
更新2 似乎perforce人们已经改变了他们的投票系统,新的网址是 https://perforce.ideas.aha.io/ideas/P4D-I-77
答案 0 :(得分:5)
我刚刚在GitHub上创建了一个名为CsProjArrange的项目。我创建它来修复我的git存储库中的合并问题。还有一些需要解决的问题,所以如果你看到任何可以改进的东西,我会接受一些拉动请求。
您只需将其设置为git中的.csproj文件的干净过滤器。
答案 1 :(得分:1)
我见过一个已知的VS问题,关于支持项目文件中的文件模式。你指的是这个问题吗? http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4512873-vs-ide-should-support-file-patterns-in-project-fil
是的,在Perforce中,您可以使用typemap表指定每个文件所需的文件类型类型,但我不确定这是否是您要查找的内容。例如:
http://answers.perforce.com/articles/KB_Article/Perforce-File-Type-Options
http://www.perforce.com/perforce/doc.current/manuals/cmdref/p4_typemap.html
实施例
如果您希望将.csproj文件视为Perforce二进制文件, 您可以将以下行添加到typemap表中:
binary //....csproj
这样可以确保您的typemap表设置所有内容 服务器上的文件为二进制文件。
对于所有当前文件,以下是您需要运行的命令:
p4 edit -t binary //....csproj
p4 submit -d "Changing all of csproj to binary etc"
您可以使用'编辑'重新打开'来更改文件类型。并且'添加'命令:
- p4编辑 http://www.perforce.com/perforce/doc.current/manuals/cmdref/edit.html#1040665
- p4重新开放 http://www.perforce.com/perforce/doc.current/manuals/cmdref/reopen.html#1040665
- p4添加 http://www.perforce.com/perforce/doc.current/manuals/cmdref/add.html#1040670