W projekcie .NET C#, który używa GIT do kontroli kodu źródłowego, nadal otrzymuję zniekształcone pliki csproj po ponownym utworzeniu, aby uzyskać ostatnio zatwierdzony kod. To jest mój sposób:Dlaczego moje pliki .csproj są pomieszane po ponownym utworzeniu git?
- popełnić mój kod
- zbudować i uruchomić testy
- rebase aby „najnowsza”
- Przeklinam niebiosa, jak plik csproj jest wkręca się ... znowu
Oto wyjście na rebase:
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".
Występują konflikty, ale jak widać, automatycznie scalono pliki csproj i zrobiono to niepoprawnie !! Kod XML pliku csprojfile nie jest prawidłowy i projekt się nie ładuje. Oto podsumowanie tego, jak wygląda:
<?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>
Dlaczego tak się dzieje? I jak mogę poprawić mój proces, aby sobie z tym poradzić?
Nie miałem żadnych problemów odkąd to zrobiłem. Dzięki! –
Dla tych, którzy czytają to ponad rok później, powinieneś przeczytać ten artykuł od programisty Github: http://haacked.com/archive/2014/04/16/csproj-merge-conflicts/ –