49 Commits

Author SHA1 Message Date
Junio C Hamano
1bc963bf8c Reintegrate: check coccicheck-pending, too 2019-03-01 07:28:15 +09:00
Junio C Hamano
322e6dc209 Reintegrate: teach 'On hold' status 2019-03-01 07:27:42 +09:00
Junio C Hamano
1531073078 Meta/Reintegrate: do not apply cocci unless the tip advances 2018-10-26 16:53:30 +09:00
Junio C Hamano
f4fe00f887 Meta/Reintegrate: allow applying cocci transformation 2018-10-23 16:01:23 +09:00
Junio C Hamano
09b3a49fbc Meta/Reintegrate: allow output from Meta/cook -w to be pasted into the branch list 2018-05-17 15:00:13 +09:00
Junio C Hamano
54c4940400 Meta/Reintegrate: make sure a merge stays a merge 2017-10-16 15:52:44 +09:00
Junio C Hamano
0862e13a57 Meta/cook: catch 'will wait...', too
... and ignore ??/wip-* while at it.
2017-07-07 12:24:37 -07:00
Junio C Hamano
60febec4c7 Meta/Reintegrate: find the branch name literally in "What's cooking" reort
It is kind of surprising but this week I named a topic name with '+'
in it for the first time, and for that branch the pattern did not
match and failed to annotate it with the description.
2016-09-21 08:34:09 -07:00
Junio C Hamano
17abc906c5 Meta/cook, Meta/Reintegrate: add a few more $willdo verbs
"Will hold" and "Will eject (from ...)" are common things to say.
2016-06-23 15:30:20 -07:00
Junio C Hamano
083f201b04 Meta/Reintegrate: give a blank to separate cut mark
The reintegrate script can have "### cut here" comments to separate
the list of topics at certain points to group them better.  Add a
blank line after them to make a long list easier to see.
2016-06-23 15:24:41 -07:00
Junio C Hamano
2dc125e01b Meta/Reintegrate: omit everything after $willdo verb
A typical entry in whats-cooking.txt begins with the description of
the topic, followed by "Will do what to this topic" declaration of
the decision (i.e. $willdo verb) and supplemental text to explain
the decision.  When we read such an entry to add to a merge log
message, we omit the line with "Will do what".

Instead, stop reading there to exclude the supplemental text from
the merge log.
2016-06-23 15:20:49 -07:00
Junio C Hamano
783534b26f Meta/cook: 'Still doing something' is another keyphrase 2016-01-26 16:21:34 -08:00
Junio C Hamano
878a985a8f Meta/Reintegrate: need to override GIT_EDITOR
The user may have his own GIT_EDITOR and overriding EDITOR would
not help making the script non-interactive.
2015-03-06 15:24:35 -08:00
Junio C Hamano
47f8a44dd7 Meta/Reintegrate: use older editions of what's cooking report as needed
When down-merging old topics that graduated to 'master' some time
ago to maintenance tracks, Meta/whats-cooking.txt that is checked
out would no longer have the release notes entry for the topics.
Look for recent editions of what's cooking report in such a case.
2015-02-24 21:53:33 -08:00
Junio C Hamano
86b0be18d6 Meta/Reintegrate: show what happened during the fix-up 2014-10-24 15:26:00 -07:00
Junio C Hamano
328539987b Meta/Reintegrate: pass custom merge options
While rebuilding an integration branch, some topics may need custom
merge options, such as -Xsubtree=where/, to explicitly tell where
that foreign history sits in our tree.  Teach the Reintegrate script
to pay attention to branch.$name.rebuild configuration, e.g.

	[branch "jl/git-gui-show-added-submodule-changes"]
		rebuild = -Xsubtree=git-gui/

to allow customization.
2014-04-16 10:28:24 -07:00
Junio C Hamano
ebf996778d Meta/Reintegrate: pick up "Can wait in", too 2013-11-21 16:18:07 -08:00
Junio C Hamano
7cc72ca00b Meta/Reintegrate: ignroe whitespace when comparing list of topics
Often topics that are ready to advance are marked by indenting them
before moving.  Ignore these changes when comparing.
2013-07-19 10:21:31 -07:00
Junio C Hamano
c0867ec58f Meta/Reintegrate: guard for misspelt topic name
Earlier the script just kept going, pretending that the failure from
the "merge" was due to a conflicted change that rerere could take
care of.
2013-07-19 10:20:54 -07:00
Junio C Hamano
dfe39c3fe1 Reintegrate: remove the "what next" markers from log messages 2013-05-24 14:12:29 -07:00
Junio C Hamano
98b350d958 Meta/Reintegrate: omit cut mark if no topics were merged from the group 2013-01-09 12:56:46 -08:00
Junio C Hamano
f02bf6b48b Meta/Reintegrate: try keeping the cut points with comments
Using empty commits on the throw-away trial integration branches,
keep track of the "doneness" comments in the history, so that
later run of "redo-*.sh -[ud]" can resurrect them.
2013-01-08 16:13:55 -08:00
Junio C Hamano
86e573b3d8 Meta/Reintegrate: report the "cut" points 2013-01-03 11:08:57 -08:00
Jeff King
afb85c76b2 Reintegrate: use --no-decorate with log --oneline
Otherwise, the script gets confused and gives us a "Huh?"
line when log.decorate is set.
2012-10-24 03:31:37 -04:00
Junio C Hamano
29d334511a Meta/cook: format the topic description with indentation
This _might_ make things easier to read, together with an extra
blank line between each topic.

Adjust Meta/Reintegrate to read and strip the extra indentation to
avoid breaking the merge log messages.  "Meta/cook -w" also has
been adjusted to read and strip the extra indentation before finding
the markers for "will-do".
2012-09-13 21:40:02 -07:00
Junio C Hamano
ad241d9861 Meta/Reintegrate: force invoking the editor when merging
As "git merge" is clever not to default to --edit behaviour when its
standard input and output streams are not connected to the same
terminal (i.e. indicating an interactive tty session), we would need
to explicitly ask for "--edit" while exporting "EDITOR=:" one-shot,
so that commit log cleaner still is triggered.

In the longer term, the interactions among pull, fmt-merge-msg,
merge and the editor need to be redesigned, but it is a large task,
so for now this workaround should suffice.
2012-07-16 16:06:27 -07:00
Junio C Hamano
a5873c4d69 Meta/Reintegrate: work around minor --no-edit breakage
For --no-edit to be true replacement of one-shot export of EDITOR=:,
it should trigger stripspace() to remove comments, but currently it
doesn't.  Avoid using it for now.
2012-06-27 21:17:09 -07:00
Junio C Hamano
0768d27d1d Meta/Reintegrate: stop at a cut ### line 2012-04-27 13:41:00 -07:00
Junio C Hamano
370023272c Meta/Reintegrate: allow each step to be optionally amended
This will let me run 'Meta/Reintegrate -e' and feed the selected branches
while on 'master', i.e. the final graduation ceremony, and clean up the
merge messages.
2012-03-16 13:04:28 -07:00
Junio C Hamano
052051e5b1 Meta/Reintegrate: propagate branch description from whats-cooking.txt 2012-03-12 10:36:13 -07:00
Junio C Hamano
bf6d875cd2 Meta/Reintegrate: redo the rerere part 2012-03-12 10:23:08 -07:00
Junio C Hamano
5280cd6e97 Meta/Reintegrate: use merge --no-edit 2012-02-09 16:03:10 -08:00
Junio C Hamano
017d4649f6 Meta/Reintegrate: allow comment in redo list 2011-10-19 11:14:40 -07:00
Junio C Hamano
d20798c67a Meta/Reintegrate: -u should default to safer "n" option 2011-05-18 23:35:51 -07:00
Junio C Hamano
cc5f90c07c Reintegrate: make merge-fix-up more noticeable 2011-02-22 14:54:41 -08:00
Junio C Hamano
8a419eb2ac Reintegrate: abort the whole thing when commit is aborted 2010-12-08 15:35:04 -08:00
Junio C Hamano
3bc8f10b46 Meta/Reintegrate: make generated scripts support -u/-d options themselves 2010-07-08 07:53:41 -07:00
Junio C Hamano
9ef638879b Reintegrate: allow regeneration of test integration on a detached HEAD 2010-05-26 10:40:59 -07:00
Junio C Hamano
47dc5e28f2 Reintegrate: do not fail when garbage is found in the orignal 2010-05-03 13:34:23 -07:00
Junio C Hamano
45ac5d4ec2 Reintegrate: allow comments in the input 2010-03-20 12:57:40 -07:00
Junio C Hamano
3ec0851d85 Reintegrate: allow update/diff 2010-02-23 17:22:43 -08:00
Junio C Hamano
dc8b63cc12 Reintegrate: handle merging from remote tracking branches 2010-01-10 11:12:42 -08:00
Junio C Hamano
78917f58fa Reintegrate: move sequencer code out of the output 2009-11-25 16:50:15 -08:00
Junio C Hamano
bcab27041c Meta/Reintegrate: allow refs/merge-fix/* to supply evil-merge-fixups 2009-11-14 15:59:49 -08:00
Junio C Hamano
547cfe39a6 Meta/Reintegrate: do not trigger pre-commit filter on merges 2009-11-14 15:58:57 -08:00
Junio C Hamano
6e916ab439 Reintegrate: only detect conflict markers in conflicted files
Otherwise we would misidentify new sections in documentation set
marked with ======= as conflict markers.
2009-04-02 10:19:54 -07:00
Junio C Hamano
7aee035363 Reintegrate: Accept rerere by default 2009-03-30 14:41:37 -07:00
Junio C Hamano
dc27452ae4 Reintegrate: sometimes a specific cherry-pick need to be carried forward
This is especially necessary when you reverted a premature merge
to more stable integration branch while you do want to keep the
topic cooking in more experimental integration branch.
2009-02-13 16:56:28 -08:00
Junio C Hamano
e97499e1d3 Add Meta/Reintegrate
In a workflow that uses topic branches heavily, you would need to keep
updating test integration branch(es) all the time.  If they are managed
like my 'next' by merging the tips of topics that have grown since the
last integration, it is not so difficult.  You only need to review output
from "git branch --no-merged next" to see if there are topics that can and
needs to be merged to 'next'.

But sometimes it is easier to rebuild a test integration branch from
scratch all the time, especially if you do not publish it for others to
build on.

I've been using this script for some time to rebuild jch and pu branches
in my workflow.  jch's tip is supposed to always match 'next', but it is
rebuilt from scratch on top of 'master' by merging the same topics that
are in 'next'.  You can use the same script in your work.

To use it, you give a commit range base..tip to the script, and you will
see a shell script that uses a series of 'git-merge'.  "base" is the more
stable branch that you rebuild your test integration branch on top (in my
case, 'master'), and "tip" is where the tip of the test integration branch
is from the last round (in my case, 'jch' or 'pu').

Then you can run the resulting script, fix conflicted merge and use
'git-commit', and then repeat until all the branches are re-integrated on
top of the base branch.

    $ Meta/Reintegrate master..jch >/var/tmp/redo-jch.sh
    $ cat /var/tmp/redo-jch.sh
    #!/bin/sh
    while read branch eh
    do
	    case "$eh" in
	    "") git merge "$branch" || break ;;
	    ?*) echo >&2 "Eh? $branch $eh"; break ;;
	    esac
    done <<EOF
    jc/blame
    js/notes
    ks/maint-mailinfo-folded~3
    tr/previous-branch
    EOF
    $ git checkout jch
    $ git reset --hard master
    $ /var/tmp/redo-jch.sh
    ... if there is conflict, resolve, "git commit" here ...
    $ /var/tmp/redo-jch.sh
    ... repeat until everything is applied.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-01-26 00:48:50 -08:00