In einem .NET C# -Projekt, das GIT für die Quellcodeverwaltung verwendet, erhalte ich nach der Umbasierung fehlerhaft erstellte csproj-Dateien, um den neuesten Code zu erhalten. Das ist mein Prozess:Warum werden meine .csproj-Dateien nach einer Git-Rebase durcheinander gebracht?
- meinen Code
- Build und Run-Tests verpflichten
- Fütterungsmaterial zu "latest bekommen"
- den Himmel verfluchen, da die csproj Datei oben geschraubt wird ... WIEDER
Hier ist die Ausgabe auf dem Fütterungsmaterial:
D:\GitHub\AwesomeProject>git rebase master
First, rewinding head to replay your work on top of it...
Applying: added getstatus call
Using index info to reconstruct a base tree...
M Host/Host.csproj
M Host/packages.config
M Trees/Trees.csproj
M Trees/packages.config
M UnitTests/UnitTests.csproj
<stdin>:1229: trailing whitespace.
<!-- To modify your build process, add your task inside one of the targets bel
ow and uncomment it.
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging UnitTests/UnitTests.csproj
Auto-merging Trees/packages.config
CONFLICT (content): Merge conflict in Trees/packages.config
Auto-merging Trees/Trees.csproj
Auto-merging Host/packages.config
CONFLICT (content): Merge conflict in Host/packages.config
Auto-merging Host/Host.csproj
Failed to merge in the changes.
Patch failed at 0001 added getstatus call
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To check out the original branch and stop rebasing run "git rebase --abort".
Es gibt Konflikte, aber wie Sie sehen können, hat es die csproj-Dateien automatisch zusammengeführt, und es hat es falsch gemacht !! Das XML der csprojfile ist nicht gültig und das Projekt wird nicht geladen. Hier ist eine abgespeckte Version von, wie es aussieht:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
... most of one version the project file
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
... most of the other version the project file
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
</Project>
Warum passiert das? Und wie kann ich meinen Prozess verbessern, um damit umzugehen?
Ich hatte keine Probleme seit ich das getan habe. Vielen Dank! –
Wenn Sie das ein Jahr später lesen, sollten Sie diesen Artikel von einem Github-Entwickler lesen: http://haacked.com/archive/2014/04/16/csproj-merge-conflicts/ –