Skip to content

Merge maintenance branches into master #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 325 commits into from

Conversation

jkseppan
Copy link
Member

It seems that the svn2git transition has not picked up all merges or at least has not turned them into git merges (perhaps this is impossible in the general case, as you can do cherry-picking with svnmerge that does not translate into clean git merges). If we want to use a merge workflow where we merge feature/bugfix branches first into the current maintenance branch and then into master, we should start with a maintenance branch that merges cleanly into master without causing changes in master, and this commit does that using the --strategy=ours merge option.

(I guess it would really be sufficient to merge only v1_0_x into master, if we are never going to touch the older branches again, but it doesn't hurt to include them.)

jdh2358 and others added 30 commits May 22, 2008 18:14
svn path=/branches/v0_91_maint/; revision=5215
svn path=/branches/v0_91_maint/; revision=5239
svn path=/branches/v0_91_maint/; revision=5258
svn path=/branches/v0_91_maint/; revision=5259
svn path=/branches/v0_91_maint/; revision=5271
svn path=/branches/v0_91_maint/; revision=5272
svn path=/branches/v0_91_maint/; revision=5275
as evidenced in the Eunjin.ttf Korean font) Thanks Jae-Joon Lee for
finding this!

svn path=/branches/v0_91_maint/; revision=5283
svn path=/branches/v0_91_maint/; revision=5292
used with Type 3 fonts.

svn path=/branches/v0_91_maint/; revision=5293
svn path=/branches/v0_91_maint/; revision=5294
svn path=/branches/v0_91_maint/; revision=5298
another related to the addition of the get_gray method

svn path=/branches/v0_91_maint/; revision=5299
svn path=/branches/v0_91_maint/; revision=5304
svn path=/branches/v0_91_maint/; revision=5305
svn path=/branches/v0_91_maint/; revision=5306
svn path=/branches/v0_91_maint/; revision=5312
svn path=/branches/v0_91_maint/; revision=5313
…ich I think is wrong

svn path=/branches/v0_91_maint/; revision=5329
svn path=/branches/v0_91_maint/; revision=5334
svn path=/branches/v0_91_maint/; revision=5358
svn path=/branches/v0_91_maint/; revision=5360
svn path=/branches/v0_91_maint/; revision=5381
svn path=/branches/v0_91_maint/; revision=5383
svn path=/branches/v0_91_maint/; revision=5385
svn path=/branches/v0_91_maint/; revision=5396
svn path=/branches/v0_91_maint/; revision=5442
svn path=/branches/v0_91_maint/; revision=5443
svn path=/branches/v0_91_maint/; revision=5488
svn path=/branches/v0_91_maint/; revision=5573
mdboom and others added 10 commits January 13, 2011 13:57
svn path=/branches/v1_0_maint/; revision=8913
svn path=/branches/v1_0_maint/; revision=8917
…847.

To avoid misplaced boundaries and artifacts with alpha < 1, we do not
stroke the pcolor and contourf patch boundaries by default; but without
that stroking, antialiasing produces boundary artifacts that tend to
be visually disturbing.  Therefore we sacrifice antialiasing for these
patches.

svn path=/branches/v1_0_maint/; revision=8920
svn path=/branches/v1_0_maint/; revision=8926
…rmap (values between -1 and 0 were being made positive due to an int cast).

Thanks to Eoghan Harrington for discovering and supplying the patch!

svn path=/branches/v1_0_maint/; revision=8931
…ere not initialized properly.

Thanks to LittleBigBrain for reporting and Friedrich Romstedt for making the original patch.

svn path=/branches/v1_0_maint/; revision=8933
svn path=/branches/v1_0_maint/; revision=8939
svn path=/branches/v1_0_maint/; revision=8953
svn path=/branches/v1_0_maint/; revision=8955
This merges branches 'origin/v1.0.x', 'origin/v0.99.x', 'origin/v0.98.x'
and 'origin/v0.91.x' with --strategy=ours, i.e., marks all of their
commits as included without changing master.
@ddale
Copy link
Contributor

ddale commented Feb 20, 2011

This is a huge commit. Is it possible to merge the maintenance branches one at a time, or is there benefit to merging them all at once?

@jdh2358
Copy link
Collaborator

jdh2358 commented Feb 20, 2011

I'm just trying to understand exactly what this is, since I am just learning about strategy=ours. Did you run this command on the master to merge from the branch, eg

git checkout master
git merge maint_branch --strategy=ours

with the strategy=ours saying keep all the master files as is. I see the diff is empty in your pull request, which is what we would want since the changes have already been merged. What then gets updated in master exactly, the commit DAG?

@jkseppan
Copy link
Member Author

Darren: it's possible to merge one at a time, or to merge only the active maintenance branch (which means that if we ever need to update one of the older branches, we can't merge it into master, or we'll get a huge merge at that time).

John: what I did was

git checkout -b merge-maint-branches master
git merge --strategy=ours origin/v1.0.x origin/v0.99.x origin/v0.98.x origin/v0.91.x
git commit --amend # to edit the commit message

Yes, the diff against master should be empty, and what gets updated is the commit DAG. The merge operation makes all the commits in the various branches ancestors of this commit, so after this commit is merged into master, merging any of the maintenance branches into master will not try to apply any of those ancestral commits. If it's unclear, try viewing this in gitk (or gitx or the various other GUIs) or adding practice commits into a local copy of a maintenance branch and merging them into master before and after this change.

In principle git2svn could have done this based on our svnmerge.py information, and it seems that it has worked partially. The git branch model is a DAG where any merge has both (or all) merged branches as ancestors, whereas the svnmerge model is that each commit either has or has not been applied to a given branch, and you can pick and choose which ones to merge in at a time. The svnmerge "merges" correspond more the git's "cherry-pick" functionality, except that svnmerge attempts to keep track which diffs have been included and git cherry-pick does not.

@ddale
Copy link
Contributor

ddale commented Feb 20, 2011

Thanks for the clarification. I misunderstood what this pull request was doing. I thought it was actually pulling all non-conflicting commits from the various maintenance branches into master. I withdraw my comment about applying it one branch at a time.

@WeatherGod
Copy link
Member

I wonder if this has anything to do with the minor annoyance we always had with svnmerge.py where various files not modified by the commit were still having their properties changed? I looked into it once, and I found that the property being changed had something to do with changing which revision number a file was being merged from (or something like that).

@ddale
Copy link
Contributor

ddale commented Feb 20, 2011

I wonder if this should be done iteratively, meaning:

git checkout v0.98.x
git merge --strategy=ours v0.91.x
git commit --amend
git checkout v0.99.x
git merge --strategy=ours v0.98.x
git commit --amend
git checkout v1.0.x
git merge --strategy=ours v0.99.x
git commit --amend
git checkout master
git merge --strategy=ours v1.0.x
git commit --amend

That way, just in case anyone submits a patch against an older version than 1.0.x, we can always apply it and propagate it up the chain.

@jkseppan
Copy link
Member Author

Darren: you're right, that's a better way to do this. I think it will involve several pull requests, since we have to merge into each branch separately.

@ddale
Copy link
Contributor

ddale commented Feb 20, 2011

Ok, I'm closing this pull request so we can handle it that way.

leejjoon pushed a commit to leejjoon/matplotlib that referenced this pull request Nov 4, 2011
@richbwood richbwood mentioned this pull request Dec 19, 2012
magnunor pushed a commit to magnunor/matplotlib that referenced this pull request Dec 5, 2013
magnunor pushed a commit to magnunor/matplotlib that referenced this pull request Dec 5, 2013
tacaswell added a commit that referenced this pull request Jul 12, 2014
BUG: improved fix for np 1.9 errors
tacaswell pushed a commit that referenced this pull request Sep 13, 2015
swfiua pushed a commit to swfiua/matplotlib that referenced this pull request Mar 17, 2017
Decode the mic data correctly
jklymak pushed a commit that referenced this pull request Mar 28, 2023
mnt: simplify stride calculation in LogLocator.tick_values
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.