commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Gregory <>
Subject Re: [math] big batch of commits coming
Date Thu, 07 Jan 2016 19:31:46 GMT
Very cool!


On Wed, Jan 6, 2016 at 5:49 AM, Luc Maisonobe <> wrote:

> Hi all,
> As discussed a few weeks ago, I ported the new field-based ode feature
> from MATH_3_X to master. I was finally able to do that without losing
> the about hundred commits history, by replaying them with some scripting.
> In case this is of interest for some of you, here is how I managed to
> do that.
> First, I had to find the commit lists in the MATH_3_X branch that
> were of interest, concentrating only on the real code change commits
> (i.e. ignoring the merge commits that occurred two or three time
> between the topic branch field-ode and MATH_3_X branch). This was
> done by identifying a start and an end commit and listing the
> intermediate ones with the following command:
> git rev-list ^4685d03~1 b5276e9 --author=Luc --max-parents=1 --reverse
> I put this list in a file for later looping over this.
> Then I wrote a small script that extracted from one commit identifier
> the commit message in one temporary file, and the diff in another
> temporary file, with all math3 strings replaced with math4. The
> diff was then applied, spurious .orig and .rej files eliminated, and
> the commit performed with the same message as the original commit. Here
> are the few commands:
>   git show --pretty=format:"%s%n%n%b" --no-patch $1 \
>        > $tmpdir/commit-message
>   git show --pretty=format:"" $1 | sed 's,math3,math4,g' \
>       > $tmpdir/commit-patch
>   patch -p1 < $tmpdir/commit-patch && |
>     find . -name '*.orig' -exec rm {} \; \
>         -o -name '*.rej'  -exec rm {} \; && \
>     git add . && \
>     git commit -F $tmpdir/commit-message
> It worked quite well, with only a few glitches that forced me to
> interrupt the loop, remove a few commits, correct the command, and
> restart the loop.
> After that, I replayed a number of additional commits picked up
> individually one at a time, for commits that occurred more recently
> than the range before and were interspersed with other commits in
> the MATH_3_X branch. So at the end, I had 101 commits.
> All of this was done on a local tmp branch, so I coud roll back and
> restart from scratch easily if anything went wrong. When I was certain
> that this tmp branch was complete, I merged it into master.
> You will see the last step in a few minutes, with a git push that will
> update master with the 101 commits that are in the pipe. I'm sorry for
> the noise.
> At the end, we will have a master branch with the same feature as the
> MATH_3_X branch, and a full history of the development of this feature.
> best regards,
> Luc
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

E-Mail: |
Java Persistence with Hibernate, Second Edition
JUnit in Action, Second Edition <>
Spring Batch in Action <>

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message