configit-open-source / csmerge Goto Github PK
View Code? Open in Web Editor NEWGit helper merge tool for dealing with project files and nuget packages
License: MIT License
Git helper merge tool for dealing with project files and nuget packages
License: MIT License
The installation completely cleared my path variable
Instead of parsing raw XML we can use https://msdn.microsoft.com/en-us/library/microsoft.build.evaluation.project(v=vs.121).aspx to handle project files and its content.
Just did a rebase using CsMerge and there seem to be duplicate references now to dlls brought in by NuGet packages:
Awesome tool though - happy to manually delete the extra references for now, it's so much better than the merge conflict hell there was before.
Maybe I'm missing something, but I configured everything as described, but still got bad XML in my .csproj file:
<Reference Include="blah, Version=1.5.1.206, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\blah.1.5.1-ci-20220804-185157\lib\net40\blah.dll</HintPath>
<Reference Include="blah, Version=1.6.0.214, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\blah.1.6.0-ci-20230302-173758\lib\netstandard2.0\blah.dll</HintPath>
</Reference>
I actually made sure things were configured at the global, system, and local project level just to be sure.
I ran the git merge, then CsMerge on the root of the project, and then CsUpdate to see if that would fix it also. I tried several times and kept rolling back the merge to see if changing settings would help.
When running CsUpdate after CsMerge, I do noticed this:
blah.csproj(126,5): error MSB4025: The project file could not be loaded. The 'Reference' start tag on line 46 position 6 does not match the end tag of 'ItemGroup'. Line 126, position 5.
Is there a way to verify the mergefail driver is actually being used? There are no conflicts, but it's still trying to include both.
Fails to merge csproj file containing the following:
<None Include="a.b">
<Link>/b/c/d</Link>
</None>
<None Include="a.b">
<SubType>Designer</SubType>
</None>
This reorders project sections, and changes the casing of various values.
Would you like to resolve the conflict with the mergetool?
y
An error occurred:
System.NullReferenceException: Object reference not set to an instance of an object.
at Integration.GitHelper.GetMergeCmdLine(Repository repository) in C:\projects\csmerge\NuGetHelpers\GitHelper.cs:line 19
at Integration.GitHelper.RunStandardMergetool(Repository repository, String base, String local, String incoming, String resolved) in C:\projects\csmerge\NuGetHelpers\GitHelper.cs:line 25
at Integration.GitHelper.ResolveWithStandardMergetool(Repository repository, String fullConflictPath, XDocument baseContent, XDocument localContent, XDocument incomingContent, Logger logger, String conflict) in C:\projects\csmerge\NuGetHelpers\GitHelper.cs:line 133
at CsMerge.CsMerge.ProcessProjectFiles(CurrentOperation operation, String[] conflictPaths, DirectoryInfo folder, Logger logger, String rootFolder) in C:\projects\csmerge\CsMerge\CsMerge.cs:line 365
at CsMerge.CsMerge.ProcessMerge(Logger logger, DirectoryInfo folder, String rootFolder) in C:\projects\csmerge\CsMerge\CsMerge.cs:line 103
at CsMerge.CsMerge.Main(String[] args) in C:\projects\csmerge\CsMerge\CsMerge.cs:line 55
Possibly csmerge should only auto resolve to the latest version if the package is edited in both parent and child AND both increased the version in case somebody intentionally downgrades a package?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.