Go to file
Jeff King 95b567c7c3 use skip_prefix to avoid repeating strings
It's a common idiom to match a prefix and then skip past it
with strlen, like:

  if (starts_with(foo, "bar"))
	  foo += strlen("bar");

This avoids magic numbers, but means we have to repeat the
string (and there is no compiler check that we didn't make a
typo in one of the strings).

We can use skip_prefix to handle this case without repeating
ourselves.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-06-20 10:44:45 -07:00
Documentation Third batch for 2.1 2014-06-16 12:39:35 -07:00
block-sha1
builtin use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
compat Merge branch 'cb/byte-order' 2014-06-16 10:07:18 -07:00
contrib Merge branch 'jk/complete-merge-pull' 2014-06-16 12:17:53 -07:00
ewah ewah_bitmap.c: do not assume size_t and eword_t are the same size 2014-04-22 16:21:16 -07:00
git-gui Merge branch 'jl/use-vsatisfy-correctly-for-2.0' 2014-05-19 10:35:24 -07:00
gitk-git
gitweb Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
mergetools mergetools: add vimdiff3 mode 2014-04-22 12:49:07 -07:00
perl Merge branch 'mm/pager-less-sans-S' 2014-06-06 11:02:59 -07:00
po fr: a lot of good fixups 2014-05-17 19:08:59 +02:00
ppc
t Merge branch 'ib/test-selectively-run' 2014-06-16 12:18:56 -07:00
templates
vcs-svn
xdiff
.gitattributes
.gitignore Merge branch 'tb/unicode-6.3-zero-width' 2014-06-06 11:29:38 -07:00
.mailmap
COPYING
GIT-VERSION-GEN First batch for 2.1 2014-06-03 12:09:13 -07:00
INSTALL
LGPL-2.1
Makefile Merge branch 'tb/unicode-6.3-zero-width' 2014-06-06 11:29:38 -07:00
README
RelNotes First batch for 2.1 2014-06-03 12:09:13 -07:00
abspath.c
aclocal.m4
advice.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
advice.h Merge branch 'jc/push-2.0-default-to-simple' 2014-03-07 15:13:15 -08:00
alias.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
alloc.c
archive-tar.c
archive-zip.c
archive.c Merge branch 'rm/strchrnul-not-strlen' 2014-03-18 13:51:18 -07:00
archive.h
argv-array.c argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
argv-array.h argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
attr.c
attr.h
base85.c
bisect.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
bisect.h
blob.c
blob.h
branch.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
branch.h
builtin.h
bulk-checkin.c
bulk-checkin.h
bundle.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
bundle.h
cache-tree.c Merge branch 'rm/strchrnul-not-strlen' 2014-03-18 13:51:18 -07:00
cache-tree.h
cache.h Merge branch 'sk/windows-unc-path' 2014-06-16 10:07:03 -07:00
check-builtins.sh check-builtins.sh: use the $(...) construct for command substitution 2014-03-25 13:42:52 -07:00
check-racy.c
check_bindir
color.c
color.h
column.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
column.h
combine-diff.c Merge branch 'mk/show-s-no-extra-blank-line-for-merges' 2014-06-06 11:35:02 -07:00
command-list.txt
commit-slab.h
commit.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
commit.h Merge branch 'bp/commit-p-editor' into maint 2014-04-08 12:07:06 -07:00
config.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
config.mak.in
config.mak.uname Merge branch 'sk/msvc-dynlink-crt' 2014-06-03 12:06:46 -07:00
configure.ac Merge branch 'ks/tree-diff-nway' 2014-06-03 12:06:40 -07:00
connect.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
connect.h
connected.c
connected.h
convert.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
convert.h
copy.c
credential-cache--daemon.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
credential-cache.c
credential-store.c
credential.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
date.c i18n: fix uncatchable comments for translators in date.c 2014-04-17 11:03:28 -07:00
decorate.c
decorate.h
delta.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
diff-delta.c
diff-lib.c Merge branch 'jk/diff-files-assume-unchanged' 2014-06-16 10:06:12 -07:00
diff-no-index.c Merge branch 'jc/fix-diff-no-index-diff-opt-parse' into maint 2014-04-09 11:59:16 -07:00
diff.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
diff.h Merge branch 'ks/tree-diff-nway' 2014-06-03 12:06:40 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c Merge branch 'nd/no-more-fnmatch' 2014-03-14 14:25:31 -07:00
diffcore-pickaxe.c pickaxe: simplify kwset loop in contains() 2014-03-24 15:13:17 -07:00
diffcore-rename.c Merge branch 'dd/use-alloc-grow' 2014-03-18 13:50:21 -07:00
diffcore.h Merge branch 'nd/diff-quiet-stat-dirty' into maint 2014-03-18 13:59:56 -07:00
dir.c dir.c:trim_trailing_spaces(): fix for " \ " sequence 2014-06-02 15:48:48 -07:00
dir.h
editor.c
entry.c Merge branch 'mh/remove-subtree-long-pathname-fix' into maint 2014-04-03 13:39:05 -07:00
environment.c Merge branch 'sh/enable-preloadindex' 2014-06-16 12:18:49 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
fetch-pack.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-am.sh Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-archimport.perl
git-bisect.sh git-bisect.sh: fix a few style issues 2014-03-03 18:29:34 -08:00
git-compat-util.h refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh
git-instaweb.sh git-instaweb: add support for Apache 2.4 2014-05-27 12:57:19 -07:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh mergetool: run prompt only if guessed tool 2014-04-22 12:49:46 -07:00
git-p4.py git-p4: Do not include diff in spec file when just preparing p4 2014-05-27 12:35:15 -07:00
git-parse-remote.sh
git-pull.sh Sync with maint 2014-06-12 12:22:38 -07:00
git-quiltimport.sh
git-rebase--am.sh Merge branch 'km/avoid-non-function-return-in-rebase' 2014-04-21 10:42:46 -07:00
git-rebase--interactive.sh Merge branch 'rr/rebase-autostash-fix' 2014-06-16 10:06:57 -07:00
git-rebase--merge.sh Merge branch 'ep/shell-command-substitution' 2014-06-03 12:06:45 -07:00
git-rebase.sh Merge branch 'rr/rebase-autostash-fix' 2014-06-16 10:06:57 -07:00
git-relink.perl
git-remote-testgit.sh Merge branch 'ep/shell-assign-and-export-vars' 2014-06-06 11:38:51 -07:00
git-request-pull.sh Merge branch 'lt/request-pull' 2014-05-19 10:35:36 -07:00
git-send-email.perl send-email: windows drive prefix (e.g. C:) appears only at the beginning 2014-04-23 09:37:38 -07:00
git-sh-i18n.sh
git-sh-setup.sh pager: remove 'S' from $LESS by default 2014-05-07 13:41:04 -07:00
git-stash.sh Merge branch 'ep/shell-assign-and-export-vars' 2014-06-06 11:38:51 -07:00
git-submodule.sh Merge branch 'sk/submodules-absolute-path-on-windows' 2014-06-06 11:26:38 -07:00
git-svn.perl Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not given 2014-04-19 11:30:13 +00:00
git-web--browse.sh git-web--browse.sh: use the $( ... ) construct for command substitution 2014-04-23 15:17:02 -07:00
git.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
git.rc
git.spec.in
gpg-interface.c
gpg-interface.h
graph.c
graph.h
grep.c Merge branch 'as/grep-fullname-config' 2014-06-03 12:06:39 -07:00
grep.h
hashmap.c
hashmap.h
help.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
help.h
hex.c
http-backend.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
http-fetch.c
http-push.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
http-walker.c
http.c http: default text charset to iso-8859-1 2014-05-27 09:59:22 -07:00
http.h http: optionally extract charset parameter from content-type 2014-05-27 09:59:19 -07:00
ident.c
imap-send.c Merge branch 'bg/xcalloc-nmemb-then-size' 2014-06-16 12:17:50 -07:00
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
line-log.c
line-log.h
line-range.c
line-range.h
list-objects.c Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
log-tree.h
mailmap.c
mailmap.h
match-trees.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
merge-blobs.c
merge-blobs.h
merge-recursive.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
merge-recursive.h
merge.c
mergesort.c
mergesort.h
name-hash.c
notes-cache.c refs.h: rename the action_on_err constants 2014-04-07 12:09:11 -07:00
notes-cache.h
notes-merge.c
notes-merge.h
notes-utils.c refs.h: rename the action_on_err constants 2014-04-07 12:09:11 -07:00
notes-utils.h
notes.c notes.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
notes.h
object.c
object.h Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
pack-bitmap-write.c Use hashcpy() when copying object names 2014-03-06 14:03:12 -08:00
pack-bitmap.c add `ignore_missing_links` mode to revwalk 2014-04-04 13:31:38 -07:00
pack-bitmap.h
pack-check.c
pack-objects.c pack-objects: use free()+xcalloc() instead of xrealloc()+memset() 2014-06-02 13:51:22 -07:00
pack-objects.h
pack-revindex.c pack-revindex.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branch 'je/pager-do-not-recurse' 2014-06-06 11:17:00 -07:00
parse-options-cb.c
parse-options.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
parse-options.h Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro' 2014-06-06 11:21:36 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c Windows: allow using UNC path for git repository 2014-06-10 13:30:04 -07:00
pathspec.c
pathspec.h
pkt-line.c
pkt-line.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
preload-index.c
pretty.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -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 'ym/fix-opportunistic-index-update-race' 2014-06-03 12:06:41 -07:00
reflog-walk.c reflog-walk.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
reflog-walk.h
refs.c Merge branch 'dt/refs-check-refname-component-optim' 2014-06-16 12:18:52 -07:00
refs.h Merge branch 'jl/remote-rm-prune' 2014-06-16 12:17:58 -07:00
remote-curl.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
remote-testsvn.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
remote.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
remote.h push: detect local refspec errors early 2014-03-05 13:23:27 -08:00
replace_object.c Merge branch 'dd/use-alloc-grow' 2014-03-18 13:50:21 -07:00
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jc/shortlog-ref-exclude' 2014-06-09 11:30:13 -07:00
revision.h Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
run-command.c run-command: store an optional argv_array 2014-05-15 09:49:09 -07:00
run-command.h run-command: store an optional argv_array 2014-05-15 09:49:09 -07:00
send-pack.c
send-pack.h
sequencer.c sequencer.c: check for lock failure and bail early in fast_forward_to 2014-04-17 12:54:15 -07:00
sequencer.h
server-info.c
setup.c Merge branch 'mw/symlinks' into maint 2014-05-28 15:45:57 -07:00
sh-i18n--envsubst.c sh-i18n--envsubst: retire unused string_list_member() 2014-03-12 15:04:55 -07:00
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'jk/report-fail-to-read-objects-better' 2014-06-16 10:06:15 -07:00
sha1_name.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
shallow.c shallow: verify shallow file after taking lock 2014-03-17 15:03:32 -07:00
shell.c
shortlog.h
show-index.c
sideband.c sideband.c: do not use ANSI control sequence on non-terminal 2014-06-02 11:02:27 -07:00
sideband.h
sigchain.c
sigchain.h
strbuf.c Merge branch 'jk/http-errors' 2014-06-16 12:18:36 -07:00
strbuf.h Merge branch 'jk/http-errors' 2014-06-16 12:18:36 -07:00
streaming.c
streaming.h
string-list.c
string-list.h string-list: spell all values out that are given to a string_list initializer 2014-06-06 13:49:19 -07:00
submodule.c
submodule.h
symlinks.c
tag.c
tag.h
tar.h
test-chmtime.c comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.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: remove unused OPT_SET_PTR 2014-03-31 13:01:19 -07:00
test-path-utils.c
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c
test-run-command.c
test-scrap-cache-tree.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
transport-helper.c transport-helper: avoid reading past end-of-string 2014-06-20 10:44:44 -07:00
transport.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
transport.h
tree-diff.c tree-diff: rework diff_tree() to generate diffs for multiparent cases as well 2014-04-07 14:40:46 -07:00
tree-walk.c
tree-walk.h
tree.c
tree.h
unicode_width.h utf8: make it easier to auto-update git_wcwidth() 2014-05-12 10:38:01 -07:00
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'nd/i18n-progress' 2014-03-14 14:26:31 -07:00
unpack-trees.h
update_unicode.sh utf8: make it easier to auto-update git_wcwidth() 2014-05-12 10:38:01 -07:00
upload-pack.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
url.c
url.h
urlmatch.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
urlmatch.h
usage.c
userdiff.c userdiff: have 'cpp' hunk header pattern catch more C++ anchor points 2014-03-21 15:03:32 -07:00
userdiff.h
utf8.c Merge branch 'tb/unicode-6.3-zero-width' 2014-06-06 11:29:38 -07:00
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c object.h: centralize object flag allocation 2014-03-25 15:09:24 -07:00
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c read-cache.c: verify index file before we opportunistically update it 2014-04-10 12:27:58 -07:00
write_or_die.c
ws.c use strchrnul() in place of strchr() and strlen() 2014-03-10 08:35:30 -07:00
wt-status.c Merge branch 'jl/status-added-submodule-is-never-ignored' 2014-06-16 10:07:19 -07:00
wt-status.h Merge branch 'mm/status-porcelain-format-i18n-fix' 2014-03-31 16:31:25 -07:00
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/everyday.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.