Discussion:
Merging Visual Studio Project Files (again)
James Robertson
2010-08-11 15:15:55 UTC
Permalink
We've all been there. Some of us more than others. Well, after being stuck trying to resolve a merge with over 9000 conflicts, I finally decided to do something about it.

<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files. You can find it and more information at http://www.projectmerge.com
</ShamelessPlug>

There's quite a bit of documentation missing at the moment, so please don't hesitate to ask if you have any problems.

Umm, that's about it really. I hope at least some of you find it useful.

James
Jon Watte
2010-08-12 17:45:24 UTC
Permalink
There's two ways of solving a problem:
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place

Generally, I've had more success with 2) when it comes to project files.
Typically, this means using something like cmake, or some home-grown script,
to generate the project files from some easier-to-use source data. Which,
generally, ends up being a lot easier to merge, and conflicts much less!

Sincerely,

jw

--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.
Post by James Robertson
We've all been there. Some of us more than others. Well, after being
stuck trying to resolve a merge with over 9000 conflicts, I finally decided
to do something about it.
<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files. You can find
it and more information at http://www.projectmerge.com
</ShamelessPlug>
There's quite a bit of documentation missing at the moment, so please don't
hesitate to ask if you have any problems.
Umm, that's about it really. I hope at least some of you find it useful.
James
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Steven Kah Hien Wong
2010-08-12 18:15:50 UTC
Permalink
Nice! I've rarely run into this issue... but if I ever do, it sounds like
something useful to look into. :)
Post by Jon Watte
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place
Generally, I've had more success with 2) when it comes to project files.
Typically, this means using something like cmake, or some home-grown script,
to generate the project files from some easier-to-use source data. Which,
generally, ends up being a lot easier to merge, and conflicts much less!
Sincerely,
jw
--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.
Post by James Robertson
We've all been there. Some of us more than others. Well, after being
stuck trying to resolve a merge with over 9000 conflicts, I finally decided
to do something about it.
<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files. You can
find it and more information at http://www.projectmerge.com
</ShamelessPlug>
There's quite a bit of documentation missing at the moment, so please
don't hesitate to ask if you have any problems.
Umm, that's about it really. I hope at least some of you find it useful.
James
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
James Robertson
2010-08-12 18:37:08 UTC
Permalink
Yep, when I last looked at generating project files (more than a couple of years ago) there didn't seem to be anything around that did exactly what we wanted, and there was fairly strong resistance to spending any significant amount of time rolling our own system or adapting an existing one. Which is why we stuck with them.

While quite a few people have moved to generating project files, I'm sure a lot more are still sticking to just using them as is.

I should point out that Project: Merge doesn't just deal with project files though. It can handle any XML file. I merely mentioned project files because I knew people had experienced similar problems resolving conflicts that I had in the past.

But even if nobody ever uses Project: Merge, it was still an interesting little project to work on. :)


James
Post by Jon Watte
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place
Generally, I've had more success with 2) when it comes to project files.
Typically, this means using something like cmake, or some home-grown
script, to generate the project files from some easier-to-use source
data. Which, generally, ends up being a lot easier to merge, and
conflicts much less!
Sincerely,
jw
--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world.
Nevertheless, whether we get there willingly or not, we shall soon have
lower consumption rates, because our present rates are unsustainable.
We've all been there. Some of us more than others. Well, after
being stuck trying to resolve a merge with over 9000 conflicts, I
finally decided to do something about it.
<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files. You
can find it and more information at http://www.projectmerge.com
</ShamelessPlug>
There's quite a bit of documentation missing at the moment, so
please don't hesitate to ask if you have any problems.
Umm, that's about it really. I hope at least some of you find it useful.
James
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------------------------------------------------
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Mike Acton
2010-08-12 19:47:52 UTC
Permalink
Hey James,

That looks like it could be a handy tool. It would be great if it could also
support merging of JSON formatted files.

Mike.
Post by James Robertson
Yep, when I last looked at generating project files (more than a couple of
years ago) there didn't seem to be anything around that did exactly what we
wanted, and there was fairly strong resistance to spending any significant
amount of time rolling our own system or adapting an existing one. Which is
why we stuck with them.
While quite a few people have moved to generating project files, I'm sure a
lot more are still sticking to just using them as is.
I should point out that Project: Merge doesn't just deal with project files
though. It can handle any XML file. I merely mentioned project files
because I knew people had experienced similar problems resolving conflicts
that I had in the past.
But even if nobody ever uses Project: Merge, it was still an interesting
little project to work on. :)
James
Post by Jon Watte
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place
Generally, I've had more success with 2) when it comes to project files.
Typically, this means using something like cmake, or some home-grown script,
to generate the project files from some easier-to-use source data. Which,
generally, ends up being a lot easier to merge, and conflicts much less!
Sincerely,
jw
--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.
We've all been there. Some of us more than others. Well, after
being stuck trying to resolve a merge with over 9000 conflicts, I
finally decided to do something about it.
<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files. You
can find it and more information at http://www.projectmerge.com
</ShamelessPlug>
There's quite a bit of documentation missing at the moment, so
please don't hesitate to ask if you have any problems.
Umm, that's about it really. I hope at least some of you find it useful.
James
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------------------------------------------------
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
James Robertson
2010-08-12 20:01:08 UTC
Permalink
Yes, I agree. :)

One of the entries in my (ever-expanding) todo list is splitting the merge engine out into a plugin-based architecture so that I can add support for other structured text formats in a consistant manner. (My initial thought here was a plugin that comprehends source code, so reordering functions in a file or class, for example, wouldn't introduce unimportant changes/conflicts.)

It's not a small task though, and I do have other things I want to get done first. But one day... :)
Post by Mike Acton
Hey James,
That looks like it could be a handy tool. It would be great if it could
also support merging of JSON formatted files.
Mike.
Yep, when I last looked at generating project files (more than a
couple of years ago) there didn't seem to be anything around that
did exactly what we wanted, and there was fairly strong resistance
to spending any significant amount of time rolling our own system or
adapting an existing one. Which is why we stuck with them.
While quite a few people have moved to generating project files, I'm
sure a lot more are still sticking to just using them as is.
I should point out that Project: Merge doesn't just deal with
project files though. It can handle any XML file. I merely
mentioned project files because I knew people had experienced
similar problems resolving conflicts that I had in the past.
But even if nobody ever uses Project: Merge, it was still an
interesting little project to work on. :)
James
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place
Generally, I've had more success with 2) when it comes to
project files. Typically, this means using something like cmake,
or some home-grown script, to generate the project files from
some easier-to-use source data. Which, generally, ends up being
a lot easier to merge, and conflicts much less!
Sincerely,
jw
--
Americans might object: there is no way we would sacrifice our
living standards for the benefit of people in the rest of the
world. Nevertheless, whether we get there willingly or not, we
shall soon have lower consumption rates, because our present
rates are unsustainable.
On Wed, Aug 11, 2010 at 8:15 AM, James Robertson
We've all been there. Some of us more than others. Well, after
being stuck trying to resolve a merge with over 9000 conflicts, I
finally decided to do something about it.
<ShamelessPlug>
Project: Merge is a tool for comparing and merging XML files.
You
can find it and more information at http://www.projectmerge.com
</ShamelessPlug>
There's quite a bit of documentation missing at the moment, so
please don't hesitate to ask if you have any problems.
Umm, that's about it really. I hope at least some of you find it
useful.
James
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------------------------------------------------
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------------------------------------------------
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Brian Richardson
2010-09-08 01:53:57 UTC
Permalink
Super delayed response. Here's a 3 way json merge tool:

http://bitsquid.blogspot.com/2010/06/avoiding-content-locks-and-conflicts-3.html
Post by Mike Acton
Hey James,
That looks like it could be a handy tool. It would be great if it could also
support merging of JSON formatted files.
Mike.
Post by James Robertson
Yep, when I last looked at generating project files (more than a couple of
years ago) there didn't seem to be anything around that did exactly what we
wanted, and there was fairly strong resistance to spending any significant
amount of time rolling our own system or adapting an existing one.  Which is
why we stuck with them.
While quite a few people have moved to generating project files, I'm sure
a lot more are still sticking to just using them as is.
I should point out that Project: Merge doesn't just deal with project
files though.  It can handle any XML file.  I merely mentioned project files
because I knew people had experienced similar problems resolving conflicts
that I had in the past.
But even if nobody ever uses Project: Merge, it was still an interesting
little project to work on.  :)
James
Post by Jon Watte
1) work hard to solve the problem (what you did)
2) eliminate the problem in the first place
Generally, I've had more success with 2) when it comes to project files.
Typically, this means using something like cmake, or some home-grown script,
to generate the project files from some easier-to-use source data. Which,
generally, ends up being a lot easier to merge, and conflicts much less!
Sincerely,
jw
--
Americans might object: there is no way we would sacrifice our living
standards for the benefit of people in the rest of the world. Nevertheless,
whether we get there willingly or not, we shall soon have lower consumption
rates, because our present rates are unsustainable.
   We've all been there.  Some of us more than others.  Well, after
   being stuck trying to resolve a merge with over 9000 conflicts, I
   finally decided to do something about it.
   <ShamelessPlug>
   Project: Merge is a tool for comparing and merging XML files.  You
   can find it and more information at http://www.projectmerge.com
   </ShamelessPlug>
   There's quite a bit of documentation missing at the moment, so
   please don't hesitate to ask if you have any problems.
   Umm, that's about it really.  I hope at least some of you find it
   useful.
   James
   _______________________________________________
   Sweng-Gamedev mailing list
 http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
------------------------------------------------------------------------
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
_______________________________________________
Sweng-Gamedev mailing list
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Loading...