Go to file
Junio C Hamano aab845424e am: match --signoff to the original scripted version
Linus noticed that the recently reimplemented "git am -s" defines
the trailer block too rigidly, resulting in an unnecessary blank
line between the existing sign-offs and his new sign-off.  An e-mail
submission sent to Linus in real life ends with mixture of sign-offs
and commentaries, e.g.

	title here

	message here

	Signed-off-by: Original Author <original@auth.or>
	[rv: tweaked frotz and nitfol]
	Signed-off-by: Re Viewer <rv@ew.er>
	Signed-off-by: Other Reviewer <other@rev.ewer>
	---
	patch here

Because the reimplementation reused append_signoff() helper that is
used by other codepaths, which is unaware that people intermix such
comments with their sign-offs in the trailer block, such a message
was judged to end with a non-trailer, resulting in an extra blank
line before adding a new sign-off.

The original scripted version of "git am" used a lot looser
definition, i.e. "if and only if there is no line that begins with
Signed-off-by:, add a blank line before adding a new sign-off".  For
the upcoming release, stop using the append_signoff() in "git am"
and reimplement the looser definition used by the scripted version
to use only in "git am" to fix this regression in "am" while
avoiding new regressions to other users of append_signoff().

In the longer term, we should look into loosening append_signoff()
so that other codepaths that add a new sign-off behave the same way
as "git am -s", but that is a task for post-release.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-09-06 19:59:40 -07:00
Documentation git-am: add am.threeWay config variable 2015-08-04 22:02:11 -07:00
block-sha1
builtin am: match --signoff to the original scripted version 2015-09-06 19:59:40 -07:00
compat
contrib builtin-am: remove redirection to git-am.sh 2015-08-04 22:02:11 -07:00
ewah Merge branch 'es/osx-header-pollutes-mask-macro' into maint 2015-07-15 11:41:24 -07:00
git-gui
gitk-git
gitweb
mergetools
perl send-email: reduce dependencies impact on parse_address_line 2015-07-07 14:38:20 -07:00
po l10n: ca.po: update translation 2015-07-20 11:54:40 -06:00
ppc
t am: match --signoff to the original scripted version 2015-09-06 19:59:40 -07:00
templates
vcs-svn
xdiff
.gitattributes
.gitignore Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
.mailmap
COPYING
GIT-VERSION-GEN Git 2.5 2015-07-27 12:29:47 -07:00
INSTALL
LGPL-2.1
Makefile builtin-am: remove redirection to git-am.sh 2015-08-04 22:02:11 -07:00
README
RelNotes Git 2.4.7 2015-07-27 12:25:42 -07:00
abspath.c
aclocal.m4
advice.c pull: check if in unresolved merge state 2015-06-18 13:17:16 -07:00
advice.h pull: check if in unresolved merge state 2015-06-18 13:17:16 -07:00
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
archive.h
argv-array.c
argv-array.h
attr.c
attr.h
base85.c
bisect.c
bisect.h
blob.c
blob.h
branch.c
branch.h
builtin.h builtin-am: implement skeletal builtin am 2015-08-04 22:02:11 -07:00
bulk-checkin.c
bulk-checkin.h
bundle.c
bundle.h
cache-tree.c cache-tree: introduce write_index_as_tree() 2015-08-04 22:02:11 -07:00
cache-tree.h cache-tree: introduce write_index_as_tree() 2015-08-04 22:02:11 -07:00
cache.h Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c
color.h
column.c
column.h
combine-diff.c
command-list.txt Merge branch 'nd/multiple-work-trees' 2015-07-13 14:02:02 -07:00
commit-slab.h Merge branch 'jc/commit-slab' 2015-08-03 11:01:21 -07:00
commit.c Merge branch 'jc/commit-slab' 2015-08-03 11:01:21 -07:00
commit.h Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
config.c Merge branch 'kb/config-unmap-before-renaming' 2015-07-13 14:00:27 -07:00
config.mak.in
config.mak.uname
configure.ac
connect.c
connect.h
connected.c
connected.h
convert.c
convert.h
copy.c
credential-cache--daemon.c
credential-cache.c
credential-store.c
credential.c
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c
date.c introduce "format" date-mode 2015-06-29 11:39:10 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c Merge branch 'nd/diff-i-t-a' 2015-06-25 10:47:46 -07:00
diff-no-index.c
diff.c Merge branch 'dt/log-follow-config' 2015-08-03 11:01:20 -07:00
diff.h log: add "log.follow" configuration variable 2015-07-09 10:24:23 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c Merge branch 'cb/uname-in-untracked' 2015-08-03 11:01:26 -07:00
dir.h
editor.c
entry.c
environment.c Merge branch 'nd/export-worktree' 2015-08-03 11:01:14 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
fetch-pack.c Merge branch 'me/fetch-into-shallow-safety' into maint 2015-07-15 11:41:20 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c Merge branch 'js/fsck-opt' 2015-08-03 11:01:18 -07:00
fsck.h fsck: git receive-pack: support excluding objects from fsck'ing 2015-06-23 14:27:37 -07:00
generate-cmdlist.perl
gettext.c introduce "format" date-mode 2015-06-29 11:39:10 -07:00
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh
git-compat-util.h wrapper: implement xfopen() 2015-08-04 22:02:11 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl Merge branch 'cn/cvsimport-perl-update' 2015-06-25 11:08:08 -07:00
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh
git-instaweb.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh mergetool-lib: fix default tool selection 2015-06-19 11:20:52 -07:00
git-mergetool.sh
git-p4.py Merge branch 'ld/p4-changes-block-size' 2015-06-24 12:21:57 -07:00
git-parse-remote.sh
git-quiltimport.sh
git-rebase--am.sh rebase: return non-zero error code if format-patch fails 2015-07-08 15:36:42 -07:00
git-rebase--interactive.sh Merge branch 'gr/rebase-i-drop-warn' 2015-08-03 11:01:22 -07:00
git-rebase--merge.sh
git-rebase.sh
git-relink.perl
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl Merge branch 'rl/send-email-aliases' 2015-08-03 11:01:15 -07:00
git-sh-i18n.sh
git-sh-setup.sh
git-stash.sh Merge branch 'jk/stash-require-clean-index' into maint 2015-06-25 23:03:27 -07:00
git-submodule.sh
git-svn.perl
git-web--browse.sh
git.c builtin-am: remove redirection to git-am.sh 2015-08-04 22:02:11 -07:00
git.rc
git.spec.in
gpg-interface.c verify-commit: add option to print raw gpg status information 2015-06-22 14:20:47 -07:00
gpg-interface.h verify-commit: add option to print raw gpg status information 2015-06-22 14:20:47 -07:00
graph.c
graph.h
grep.c
grep.h
hashmap.c
hashmap.h
help.c Merge branch 'js/sleep-without-select' 2015-06-24 12:21:47 -07:00
help.h
hex.c
http-backend.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
http-fetch.c
http-push.c
http-walker.c
http.c Merge branch 'et/http-proxyauth' 2015-07-13 14:00:24 -07:00
http.h
ident.c
imap-send.c
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c Merge branch 'jk/color-diff-plain-is-context' into maint 2015-06-25 11:02:11 -07:00
line-log.h
line-range.c
line-range.h
list-objects.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint 2015-06-25 11:02:10 -07:00
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c Merge branch 'js/sleep-without-select' 2015-06-24 12:21:47 -07:00
lockfile.h
log-tree.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
log-tree.h
mailmap.c
mailmap.h
match-trees.c
merge-blobs.c
merge-blobs.h
merge-recursive.c
merge-recursive.h
merge.c
mergesort.c
mergesort.h
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h
notes-utils.c
notes-utils.h
notes.c
notes.h
object.c
object.h
pack-bitmap-write.c
pack-bitmap.c Merge branch 'es/osx-header-pollutes-mask-macro' into maint 2015-07-15 11:41:24 -07:00
pack-bitmap.h
pack-check.c
pack-objects.c
pack-objects.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branch 'jc/unexport-git-pager-in-use-in-pager' into maint 2015-07-27 12:21:44 -07:00
parse-options-cb.c
parse-options.c parse-options: move unsigned long option parsing out of pack-objects.c 2015-06-22 15:07:21 -07:00
parse-options.h Merge branch 'pt/pull-builtin' 2015-08-03 11:01:17 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c
pathspec.c
pathspec.h
pkt-line.c pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
pkt-line.h
preload-index.c
pretty.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
prio-queue.c
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c Merge branch 'jk/diagnose-config-mmap-failure' into maint 2015-06-25 11:02:11 -07:00
ref-filter.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
ref-filter.h ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname 2015-08-03 10:24:07 -07:00
reflog-walk.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
reflog-walk.h convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
refs.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
refs.h delete_ref(): use the usual convention for old_sha1 2015-06-22 13:17:14 -07:00
remote-curl.c
remote-testsvn.c refs: move the remaining ref module declarations to refs.h 2015-06-22 13:17:12 -07:00
remote.c
remote.h
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
revision.h convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
run-command.c
run-command.h
send-pack.c
send-pack.h
sequencer.c
sequencer.h
server-info.c
setup.c Merge branch 'ee/clean-remove-dirs' 2015-08-03 11:01:13 -07:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'jk/fix-refresh-utime' into maint 2015-07-27 12:21:40 -07:00
sha1_name.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
split-index.c
split-index.h
strbuf.c Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
strbuf.h Merge branch 'jk/date-mode-format' 2015-08-03 11:01:27 -07:00
streaming.c
streaming.h
string-list.c
string-list.h
submodule.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
submodule.h
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c
test-config.c
test-ctype.c
test-date.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
test-delta.c
test-dump-cache-tree.c
test-dump-split-index.c
test-dump-untracked-cache.c
test-genrandom.c
test-hashmap.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mergesort.c
test-mktemp.c
test-parse-options.c parse-options: move unsigned long option parsing out of pack-objects.c 2015-06-22 15:07:21 -07:00
test-path-utils.c
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
test-run-command.c
test-scrap-cache-tree.c
test-sha1-array.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-list.c
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c
thread-utils.h
trace.c pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
trace.h pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
trailer.c
trailer.h
transport-helper.c
transport.c
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint 2015-06-25 11:02:10 -07:00
tree.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' into maint 2015-06-25 11:02:10 -07:00
unicode_width.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c
unpack-trees.h
update_unicode.sh
upload-pack.c
url.c
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c
userdiff.h
utf8.c
utf8.h Merge branch 'es/utf8-stupid-compiler-workaround' into maint 2015-07-15 11:41:23 -07:00
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c wrapper: implement xfopen() 2015-08-04 22:02:11 -07:00
write_or_die.c
ws.c
wt-status.c Merge branch 'gp/status-rebase-i-info' 2015-08-03 11:01:20 -07:00
wt-status.h
xdiff-interface.c
xdiff-interface.h
zlib.c

README

////////////////////////////////////////////////////////////////

	Git - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public
License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/giteveryday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

Many Git online resources are accessible from http://git-scm.com/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://news.gmane.org/gmane.comp.version-control.git/,
http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.