summaryrefslogtreecommitdiff
path: root/builtin-revert.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'jc/revert-merge'Junio C Hamano2007-11-041-6/+29
|\ | | | | | | | | | | | | | | | | | | * jc/revert-merge: cherry-pick/revert -m: add tests revert/cherry-pick: work on merge commits as well Conflicts: builtin-revert.c
| * revert/cherry-pick: work on merge commits as wellJunio C Hamano2007-10-261-7/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Usually you cannot revert a merge because you do not know which side of the merge should be considered the mainline (iow, what change to reverse). With this patch, cherry-pick and revert learn -m (--mainline) option that lets you specify the parent number (starting from 1) of the mainline, so that you can: git revert -m 1 $merge to reverse the changes introduced by the $merge commit relative to its first parent, and: git cherry-pick -m 2 $merge to replay the changes introduced by the $merge commit relative to its second parent. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'ph/parseopt'Junio C Hamano2007-11-021-37/+30
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ph/parseopt: (24 commits) gc: use parse_options Fixed a command line option type for builtin-fsck.c Make builtin-pack-refs.c use parse_options. Make builtin-name-rev.c use parse_options. Make builtin-count-objects.c use parse_options. Make builtin-fsck.c use parse_options. Update manpages to reflect new short and long option aliases Make builtin-for-each-ref.c use parse-opts. Make builtin-symbolic-ref.c use parse_options. Make builtin-update-ref.c use parse_options Make builtin-revert.c use parse_options. Make builtin-describe.c use parse_options Make builtin-branch.c use parse_options. Make builtin-mv.c use parse-options Make builtin-rm.c use parse_options. Port builtin-add.c to use the new option parser. parse-options: allow callbacks to take no arguments at all. parse-options: Allow abbreviated options when unambiguous Add shortcuts for very often used options. parse-options: make some arguments optional, add callbacks. ... Conflicts: Makefile builtin-add.c
| * | Make builtin-revert.c use parse_options.Pierre Habouzit2007-10-291-37/+30
| |/ | | | | | | | | Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
* | Merge branch 'maint' into HEADJunio C Hamano2007-10-301-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: Update GIT 1.5.3.5 Release Notes git-rebase--interactive.sh: Make 3-way merge strategies work for -p. git-rebase--interactive.sh: Don't pass a strategy to git-cherry-pick. Fix --strategy parsing in git-rebase--interactive.sh Make merge-recursive honor diff.renamelimit cherry-pick/revert: more compact user direction message core-tutorial: Use new syntax for git-merge. git-merge: document but discourage the historical syntax Prevent send-pack from segfaulting (backport from 'master') Documentation/git-cvsexportcommit.txt: s/mgs/msg/ in example Conflicts: git-rebase--interactive.sh
| * cherry-pick/revert: more compact user direction messageNicolas Pitre2007-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A failed cherry-pick (and friend) currently says: |Automatic cherry-pick failed. After resolving the conflicts, |mark the corrected paths with 'git-add <paths>' |and commit the result. This can obviously be displayed on two lines only. While at it, change "git-add" to "git add". Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Use xmemdupz() in many places.Pierre Habouzit2007-09-181-3/+1
|/ | | | | Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* More staticJunio C Hamano2007-06-131-2/+2
| | | | | | There still are quite a few symbols that ought to be static. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Missing statics.Pierre Habouzit2007-06-081-1/+1
| | | | | Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Fix command line parameter parser of revert/cherry-pickJunio C Hamano2007-05-231-2/+5
| | | | | | | | | | | | | | | The parser was inconsistently done, in that it did not look at the last command line parameter to see if it could be an unknown option, although it was designed to notice unknown options if they were given in positions the command expects to find them (i.e. everything except the last parameter, which ought to be <commit-ish>). This prevented a very natural invocation $ git cherry-pick --usage from issuing the usage help. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Correct error message in revert/cherry-pickShawn O. Pearce2007-05-101-1/+1
| | | | | | | | We now write to MERGE_MSG, not .msg. I missed this earlier when I changed the target we write to. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Use .git/MERGE_MSG in cherry-pick/revertShawn O. Pearce2007-05-081-11/+6
| | | | | | | | | | | | | | | | | | | | | Rather than storing the temporary commit message data in .msg (in the working tree) we now store the message data in .git/MERGE_MSG. By storing the message in the .git/ directory we are sure we will never have a collision with a user file, should a project actually have a ".msg" file in their top level tree. We also don't need to worry about leaving this stale file behind during a `reset --hard` and have it show up in the output of status. We are using .git/MERGE_MSG here to store the temporary message as it is an already established convention between git-merge, git-am and git-rebase that git-commit will default the user's edit buffer to the contents of .git/MERGE_MSG. If the user is going to need to resolve this commit or wants to edit the message on their own prepping that file with the desired message "just works". Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-revert: Revert revert message to old behaviourJohannes Schindelin2007-03-241-5/+5
| | | | | | | | | | | | | | When converting from the shell script, based on a misreading of the sed invocation, the builtin included the abbreviated commit name, and did _not_ include the quotes around the oneline message. This fixes it. [jc: with a fix for the typo/thinko spotted by Linus, and also removing the unwanted abbrev at the beginning.] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Correct new compiler warnings in builtin-revertShawn O. Pearce2007-03-121-2/+2
| | | | | | | | | | The new builtin-revert code introduces a few new compiler errors when I'm building with my stricter set of checks enabled in CFLAGS. These all just stem from trying to store a constant string into a non-const char*. Simple fix, make the variables const char*. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Switch to run_command_v_opt in revertShawn O. Pearce2007-03-111-4/+9
| | | | | | | | | | Another change by me is removing the va_list variants of run_command, one of which is used by builtin-revert.c. To avoid compile errors I'm refactoring builtin-revert to use the char** variant instead, as that variant is staying. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cherry-pick: Bug fix 'cherry picked from' message.Shawn O. Pearce2007-03-051-2/+2
| | | | | | | | | | | | | | | | | | | Somewhere along the line (in abd6970a) git-revert.sh learned to omit the private object name from the new commit message *unless* -x was supplied on the command line by the user. The way this was implemented is really non-obvious in the original script. Setting replay=t (the default) means we don't include the the private object name, while setting reply='' (the -x flag) means we should include the private object name. These two settings now relate to the replay=1 and replay=0 cases in the C version, so we need to negate replay to test it is 0. I also noticed the C version was adding an extra LF in the -x case, where the older git-revert.sh was not. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* cherry-pick: Suggest a better method to retain authorshipJohannes Schindelin2007-03-041-13/+6
| | | | | | | | | | | | When a cherry-pick failed, we used to recommend setting environment variables to retain the authorship. It is much easier, though, to use the "-c" flag of git-commit. Print this message also when merge-recursive fails (the code used to exit(1) in that case, never reaching the proper failure path). Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Make git-revert & git-cherry-pick a builtinJohannes Schindelin2007-03-031-0/+406
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>