aboutsummaryrefslogtreecommitdiff
path: root/git-am.sh
Commit message (Collapse)AuthorAge
* git-am: head -1 is obsolete and doesn't work on some new systemsAlejandro Mery2008-06-17
| | | | | | | | | | | head -<n> was deprecated by POSIX, and as modern versions of coreutils package don't support it at least one exports _POSIX2_VERSION=199209 it's fails on some systems. head -n<n> is portable, but sed <n>q is even more. Signed-off-by: Alejandro Mery <amery@geeks.cl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint-1.5.4' into maintJunio C Hamano2008-05-21
|\ | | | | | | | | | | * maint-1.5.4: git-am: fix typo in usage message doc/git-daemon: s/uploadarchive/uploadarch/
| * git-am: fix typo in usage messageJeff King2008-05-19
| | | | | | | | | | Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'jc/maint-rebase-am' into maintJunio C Hamano2008-04-19
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * jc/maint-rebase-am: rebase: do not munge commit log message Conflicts: git-am.sh
| * | rebase: do not munge commit log messageJunio C Hamano2008-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Traditionally git-rebase was implemented in terms of "format-patch" piped to "am -3", to strike balance between speed (because it avoids a rather expensive read-tree/merge-recursive machinery most of the time) and flexibility (the magic "-3" allows it to fall back to 3-way merge as necessary). However, this combination has one flaw when dealing with a nonstandard commit log message format that has more than one lines in the first paragraph. This teaches "git am --rebasing" to take advantage of the fact that the mbox message "git rebase" prepares for it records the original commit object name, to get the log message from the original commit object instead. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'maint-1.5.4' into maintJunio C Hamano2008-04-18
|\ \ \ | | |/ | |/| | | | | | | * maint-1.5.4: am: POSIX portability fix
| * | am: POSIX portability fixJunio C Hamano2008-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX allows echo without flag to interpret specials such as \n, and we tried to make things portable by using printf instead where it matters. Recently added code to "git am" had unprotected "echo", which was caught by t4014 and Rémi Vanicat. This should fix it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'maint-1.5.4' into maintJunio C Hamano2008-04-16
|\ \ \ | |/ / | | / | |/ |/| | | * maint-1.5.4: git-am: minor cleanup Clarify and fix English in "git-rm" documentation
| * git-am: minor cleanupJunio C Hamano2008-04-16
| | | | | | | | | | | | | | | | | | This moves the assignment to FIRSTLINE down so that we do not have to have multiple copies. Suggested by Linus. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint-1.5.4' into maintJunio C Hamano2008-04-16
|\ \ | |/ | | | | | | | | | | | | | | | | * maint-1.5.4: git-bisect: make "start", "good" and "skip" succeed or fail atomically git-am: cope better with an empty Subject: line Ignore leading empty lines while summarizing merges bisect: squelch "fatal: ref HEAD not a symref" misleading message builtin-apply: Show a more descriptive error on failure when opening a patch Clarify documentation of git-cvsserver, particularly in relation to git-shell
| * git-am: cope better with an empty Subject: lineLinus Torvalds2008-04-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the Subject: line is empty for whatever reason, git-am was fooled by it and left an empty line at the beginning of the resulting commit log message. This moves the logic around so that we do not keep $SUBJECT in a separate variable. Instead, $dotest/msg-clean, which used to be the log message body extracted from the message and then trailing whitespaces cleansed out, now contains the subject line followed by a blank line at the beginning for normal messages, and we use the first line from the file as the summary line throughout the program. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | remove use of "tail -n 1" and "tail -1"Jeff King2008-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "-n" syntax is not supported by System V versions of tail (which prefer "tail -1"). Unfortunately "tail -1" is not actually POSIX. We had some of both forms in our scripts. Since neither form works everywhere, this patch replaces both with the equivalent sed invocation: sed -ne '$p' Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | am: --rebasingJunio C Hamano2008-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The new option --rebasing is used internally for rebase to tell am that it is being used for its purpose. This would leave .dotest/rebasing to help "completion" scripts tell if the ongoing operation is am or rebase. Also the option at the same time stands for --binary, -3 and -k which are always given when rebase drives am as its backend. Using the information "am" leaves, git-completion.bash tells ongoing rebase and am apart. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | am: remove support for -d .dotestJunio C Hamano2008-03-05
| | | | | | | | | | | | | | | | | | It has been supported for a long time, but I do not think this feature has been in use in the real world at all. We would eventually move this out of the toplevel of the work tree and to somewhere under $GIT_DIR, so let's remove the command line option to specify the location now. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | am: read from the right mailbox when started from a subdirectoryJunio C Hamano2008-03-05
| | | | | | | | | | | | | | | | | | An earlier commit c149184 (allow git-am to run in a subdirectory) taught git-am to start from a subdirectory by going up to the root of the work tree byitself, but it did not adjust the path to read the mbox from when it did so. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | allow git-am to run in a subdirectoryJeff King2008-03-01
|/ | | | | | | | | We just move to the top of the tree and proceed. This shouldn't break any existing callers, since the behavior was previously disallowed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-am: fix type in its usage stringJörg Sommer2008-02-03
| | | | | Signed-off-by: Jörg Sommer <joerg@alea.gnuu.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-am: Run git gc only once and not for every patch.Michael Stefaniuc2008-01-05
| | | | | | | | With "too many unreachable loose objects" git gc --auto will always trigger. This clutters the output of git am and thus git rebase. Signed-off-by: Michael Stefaniuc <mstefani@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint'Junio C Hamano2007-12-05
|\ | | | | | | | | | | | | | | | | * maint: git-am -i: report rewritten title git grep shows the same hit repeatedly for unmerged paths Do check_repository_format() early (re-fix) Do check_repository_format() early Add missing inside_work_tree setting in setup_git_directory_gently
| * git-am -i: report rewritten titleJunio C Hamano2007-12-05
| | | | | | | | | | | | | | Jeff Garzik noticed that "git am -i" reports the applied patch with the title before the user edited it. This was confusing. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Revert "git-am: catch missing author date early."Junio C Hamano2007-12-05
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6e9e0327b7d7f384d8a223b4bc40330ef3e7fb61. People can prepare a text file with Subject: and From: headers and feed it to "am" (pretending the file is a piece of e-mail), and have actually been doing so. Strict checking for Date: breaks this established workflow, which wants to record the time of the commit as the author time. Thanks go to Jens Axboe for injection of sanity. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-am: catch missing author date early.Junio C Hamano2007-12-02
| | | | | | | | | | | | | | | | Even though commit-tree would default to the current time if the incoming e-mail message somehow did not record the timestamp, it is safer to catch the breakage sooner. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'maint'Junio C Hamano2007-11-28
|\ \ | |/ | | | | | | | | * maint: scripts: do not get confused with HEAD in work tree Improve description of git-branch -d and -D in man page.
| * scripts: do not get confused with HEAD in work treeJunio C Hamano2007-11-28
| | | | | | | | | | | | | | | | | | | | | | | | When you have a file called HEAD in your work tree, many commands that our scripts feed "HEAD" to would complain about the rev vs path ambiguity. A solution is to form command line more carefully by appending -- to them, which makes it clear that we mean HEAD rev not HEAD file. This patch would apply to maint. Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * apply: get rid of --index-info in favor of --build-fake-ancestorJohannes Schindelin2007-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git-am used "git apply -z --index-info" to find the original versions of the files touched by the diff, to be able to do an inexpensive three-way merge. This operation makes only sense in a repository, since the index information in the diff refers to blobs, which have to be present in the current repository. Therefore, teach "git apply" a mode to write out the result as an index file to begin with, obviating the need for scripts to do it themselves. The sole user for --index-info is "git am" is converted to use --build-fake-ancestor in this patch. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-am: -i does not take a string parameter.Junio C Hamano2007-11-08
| | | | | | | | | | | | | | | | | | | | | | | | $ git am -3 -s -i file spewed the usage strings back at the user while $ git am -3 -i -s file didn't. This fixes it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Give git-am back the ability to add Signed-off-by lines.Johannes Sixt2007-11-06
| | | | | | | | | | | | | | | | This was lost in the migration to git-rev-parse --parseopt by commit 78443d90491c1b82afdffc3d5d2ab8c1a58928b5. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Migrate git-am.sh to use git-rev-parse --parseoptPierre Habouzit2007-11-05
| | | | | | | | | | Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'jc/am-quiet'Shawn O. Pearce2007-10-18
|\ \ | | | | | | | | | | | | | | | * jc/am-quiet: git-am: fix typo in the previous one. git-am: make the output quieter.
| * | git-am: fix typo in the previous one.Junio C Hamano2007-10-01
| | | | | | | | | | | | | | | | | | Caught on #git by Ulrik Sverdrup Signed-off-by: Junio C Hamano <gitster@pobox.com>
| * | git-am: make the output quieter.Junio C Hamano2007-09-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to say "Applying <patch subject>", "Wrote <tree object>", and "Committed <commit object>". Worse yet, with extra blank lines around them. Make the output more concise. The object names are not so useful nor interesting. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'jc/autogc'Junio C Hamano2007-10-03
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/autogc: git-gc --auto: run "repack -A -d -l" as necessary. git-gc --auto: restructure the way "repack" command line is built. git-gc --auto: protect ourselves from accumulated cruft git-gc --auto: add documentation. git-gc --auto: move threshold check to need_to_gc() function. repack -A -d: use --keep-unreachable when repacking pack-objects --keep-unreachable Export matches_pack_name() and fix its return value Invoke "git gc --auto" from commit, merge, am and rebase. Implement git gc --auto
| * | Invoke "git gc --auto" from commit, merge, am and rebase.Junio C Hamano2007-09-06
| | | | | | | | | | | | | | | | | | | | | | | | The point of auto gc is to pack new objects created in loose format, so a good rule of thumb is where we do update-ref after creating a new commit. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | Merge branch 'js/apply-build-ancestor'Junio C Hamano2007-09-23
|\ \ \ | |_|/ |/| | | | | | | | * js/apply-build-ancestor: apply: get rid of --index-info in favor of --build-fake-ancestor
| * | apply: get rid of --index-info in favor of --build-fake-ancestorJohannes Schindelin2007-09-18
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git-am used "git apply -z --index-info" to find the original versions of the files touched by the diff, to be able to do an inexpensive three-way merge. This operation makes only sense in a repository, since the index information in the diff refers to blobs, which have to be present in the current repository. Therefore, teach "git apply" a mode to write out the result as an index file to begin with, obviating the need for scripts to do it themselves. The sole user for --index-info is "git am" is converted to use --build-fake-ancestor in this patch. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Supplant the "while case ... break ;; esac" idiomDavid Kastrup2007-09-23
|/ | | | | | | | | | | | | | | | | | | | | | A lot of shell scripts contained stuff starting with while case "$#" in 0) break ;; esac and similar. I consider breaking out of the condition instead of the body od the loop ugly, and the implied "true" value of the non-matching case is not really obvious to humans at first glance. It happens not to be obvious to some BSD shells, either, but that's because they are not POSIX-compliant. In most cases, this has been replaced by a straight condition using "test". "case" has the advantage of being faster than "test" on vintage shells where "test" is not a builtin. Since none of them is likely to run the git scripts, anyway, the added readability should be worth the change. A few loops have had their termination condition expressed differently. Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Make usage documentation for git-am consistent.Brian Hetro2007-08-25
| | | | | | | | The usage information in git-am.sh now matches that of the documentation. Signed-off-by: Brian Hetro <whee@smaertness.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git-am: initialize variable $resume on startupGerrit Pape2007-08-06
| | | | | | | | | | | | git-am expects the variable $resume to be empty or unset, which might not be the case if $resume is set in the user's environment. So initialize it to an empty value on startup. The problem was noticed by Pierre Habouzit and reported through http://bugs.debian.org/435807 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* git am: skip pine's internal folder dataJohannes Schindelin2007-07-24
| | | | | | | | Test if the From: line contains "Mail System Internal Data" and if it is, skip this mail. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Add GIT_EDITOR environment and core.editor configuration variablesAdam Roben2007-07-20
| | | | | | | | | | | These variables let you specify an editor that will be launched in preference to the EDITOR and VISUAL environment variables. The order of preference is GIT_EDITOR, core.editor, EDITOR, VISUAL. [jc: added a test and config variable documentation] Signed-off-by: Adam Roben <aroben@apple.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Enable "git rerere" by the config variable rerere.enabledJohannes Schindelin2007-07-06
| | | | | | | | | | | | | | | | | | | Earlier, "git rerere" was enabled by creating the directory .git/rr-cache. That is definitely not in line with most other features, which are enabled by a config variable. So, check the config variable "rerere.enabled". If it is set to "false" explicitely, do not activate rerere, even if .git/rr-cache exists. This should help when you want to disable rerere temporarily. If "rerere.enabled" is not set at all, fall back to detection of the directory .git/rr-cache. [jc: with minimum tweaks] Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Rewrite "git-frotz" to "git frotz"Junio C Hamano2007-07-02
| | | | | | This uses the remove-dashes target to replace "git-frotz" to "git frotz". Signed-off-by: Junio C Hamano <gitster@pobox.com>
* More echo "$user_message" fixes.Jeff King2007-05-26
| | | | | | | Here are fixes to more uses of 'echo "$msg"' where $msg could contain backslashed sequence. Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-am: use printf instead of echo on user-supplied stringsJeff King2007-05-25
| | | | | | | | | | | | | | | | Under some implementations of echo (such as that provided by dash), backslash escapes are recognized without any other options. This means that echo-ing user-supplied strings may cause any backslash sequences in them to be converted. Using printf resolves the ambiguity. This bug can be seen when using git-am to apply a patch whose subject contains the character sequence "\n"; the characters are converted to a literal newline. Noticed by Szekeres Istvan. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Fix typo in git-am: s/Was is/Was it/Josh Triplett2007-04-23
| | | | | Signed-off-by: Josh Triplett <josh@freedesktop.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Use diff* with --exit-code in git-am, git-rebase and git-merge-oursAlex Riesen2007-03-24
| | | | | | | | | This simplifies the shell code, reduces its memory footprint, and speeds things up. The performance improvements should be noticable when git-rebase works on big commits. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* builtin-mailinfo.c infrastrcture changesDon Zickus2007-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am working on a project that required parsing through regular mboxes that didn't necessarily have patches embedded in them. I started by creating my own modified copy of git-am and working from there. Very quickly, I noticed git-mailinfo wasn't able to handle a big chunk of my email. After hacking up numerous solutions and running into more limitations, I decided it was just easier to rewrite a big chunk of it. The following patch has a bunch of fixes and features that I needed in order for me do what I wanted. Note: I'm didn't follow any email rfc papers but I don't think any of the changes I did required much knowledge (besides the boundary stuff). List of major changes/fixes: - can't create empty patch files fix - empty patch files don't fail, this failure will come inside git-am - multipart boundaries are now handled - only output inbody headers if a patch exists otherwise assume those headers are part of the reply and instead output the original headers - decode and filter base64 patches correctly - various other accidental fixes I believe I didn't break any existing functionality or compatibility (other than what I describe above, which is really only the empty patch file). I tested this through various mailing list archives and everything seemed to parse correctly (a couple thousand emails). [jc: squashed in another patch from Don's five patch series to fix the test case, as this patch exposes the bug in the test.] Signed-off-by: Don Zickus <dzickus@redhat.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Reword git-am 3-way fallback failure message.Junio C Hamano2007-02-24
| | | | | | | | | | | | When the blobs recorded on the index lines in the patch as pre-image blobs are not found in the repository, "git-am" punted saying that the index line does not record anything useful. This was not clear enough -- the index line does have something useful but the problem was that it was not useful in _that_ repository. Reword the message as Francis Moreau suggests. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Teach git-am to pass -p option down to git-applyJunio C Hamano2007-02-11
| | | | | | | This is originally from Andy Parkins whose patch used --patchdepth; let's use -p which is more in line with the underlying git-apply. Signed-off-by: Junio C Hamano <junkio@cox.net>
* add -C[NUM] to git-amMichael S. Tsirkin2007-02-08
| | | | | | | | Add -C[NUM] to git-am and git-rebase so that patches can be applied even if context has changed a bit. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Junio C Hamano <junkio@cox.net>