Since we reformatted the sources per our new coding standard, MANY
lines have changed in the *.h and *.c files. Integrating a branch that
was created prior to the reformatting can be problematic. I proved
that by having to ask Tom Russo for help integrating my long-running
Greek branch. It's not ready to add back to the main project, but I
wanted to rebase it off master and couldn't using my normal methods.

If you've been working on a branch/pull-request since prior to the
source re-formmating you should attempt to rebase it off the latest
master. If that fails, consider starting with a fresh branch off the
latest master and manually re-integrating your patches into those
sources, or see below.

Things should be easier from now on as we don't intend to reformat all
the sources again anytime soon.

Below is the method Tom came up with for my branch. The below is the
meat from multiple emails between us trying to solve the problem (He
did all the solving):

--------------------
git checkout greek
git checkout -b greek-merged
astyle -A1 -s2 -S -xW -j -z2 src/main.c src/xa_config.c
src/draw_symbols.c src/db.c
rm src/*.orig
git add .
git commit # then give a commit message explaining why you're reformatting
git merge -s recursive -X ignore-all-space master

Then manually resolve the merge conflicts.  There aren't many, and they're
fairly simple.

BTW, if you follow this prescription, there are now only conflicts in three
files, main.c, xa_config.c, and db.c.  Once you edit the three files and
resolve the conflicts (which are really straightforward) you just
"git add src/main.c src/xa_config.c src/db.c" and "git merge --continue",
and then you're here:

Now, "greek-merged" is what you would have liked to have been the final
state of a rebase, only with a somewhat ugly merge commit:
[...]

Now you can use "greek_merged" is a reformatted version of greek, with master
merged in.  A "git diff master" will show you only a small number of relatively
simple changes off of master, similar to the changes that "git
checkout greek; git diff 0f2c7a9b" would have shown.

When I did this, the two diffs looked basically the same, modulo the "optional"
brace issue below.

You might have to add a commit or two to greek_merge to fix "optional" brace
issues in new code that weren't fixed by the merge.
--------------------

--
Curt, WE7U        http://we7u.wetnet.net        http://www.sarguydigital.com
_______________________________________________
Xastir-dev mailing list
Xastir-dev@lists.xastir.org
http://xastir.org/mailman/listinfo/xastir-dev

Reply via email to