1
0
mirror of https://github.com/git/git.git synced 2024-10-20 09:59:05 +02:00
Git Source Code Mirror. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
Go to file
Martin von Zweigbergk 02ac45fa62 rebase: refactor reading of state
The code reading the state saved in $merge_dir or $rebase_dir is
currently spread out in many places, making it harder to read and to
introduce additional state. Extract this code into one method that
reads the state. Only extract the code associated with the state that
is written when the rebase is initiated. Leave the state that changes
for each commmit, at least for now.

Currently, when resuming a merge-based rebase using --continue or
--skip, move_to_original_branch (via finish_rb_merge) will be called
without head_name and orig_head set. These variables are then lazily
read in move_to_original_branch if head_name is not set (together with
onto, which is unnecessarily read again). Change this by always
eagerly reading the state, for both am-based and merge-based rebase,
in the --continue and --skip cases. Note that this does not change the
behavior for am-based rebase, which read the state eagerly even before
this commit.

Reading the state eagerly means that part of the state will sometimes
be read unnecessarily. One example is when the rebase is continued,
but stops again at another merge conflict. Another example is when the
rebase is aborted. However, since both of these cases involve user
interaction, the delay is hopefully not noticeable. The
call_merge/continue_merge loop is not affected.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-10 14:08:07 -08:00
block-sha1
builtin Merge branch 'jc/fsck-fixes' 2011-02-09 16:41:17 -08:00
compat Merge branch 'rj/msvc-fix' 2010-12-16 12:55:36 -08:00
contrib Merge branch 'jn/cherry-pick-strategy-option' 2011-02-09 16:41:16 -08:00
Documentation Merge branch 'rr/fi-import-marks-if-exists' 2011-02-09 16:41:16 -08:00
git_remote_helpers
git-gui
gitk-git Merge branch 'maint' 2011-01-08 23:48:47 -08:00
gitweb gitweb: Mention optional Perl modules in INSTALL 2011-02-07 14:29:15 -08:00
perl
ppc
t Merge branch 'tr/merge-unborn-clobber' 2011-02-09 16:41:17 -08:00
templates
vcs-svn svndump.c: Fix a printf format compiler warning 2011-01-18 16:48:47 -08:00
xdiff Merge branch 'cb/diff-fname-optim' into maint 2010-11-24 12:46:26 -08:00
.gitattributes
.gitignore Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
.mailmap
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c
archive.h
attr.c
attr.h
base85.c
bisect.c
bisect.h
blob.c
blob.h
branch.c
branch.h
builtin.h Merge branch 'il/remote-fd-ext' 2010-12-08 11:24:14 -08:00
bundle.c bundle: Use OFS_DELTA in bundle files 2011-02-06 22:50:26 -08:00
bundle.h
cache-tree.c
cache-tree.h
cache.h Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
check_bindir
check-builtins.sh
check-racy.c
color.c default color.status.branch to "same as header" 2010-12-10 12:59:52 -08:00
color.h default color.status.branch to "same as header" 2010-12-10 12:59:52 -08:00
combine-diff.c
command-list.txt
commit.c Add const to parse_{commit,tag}_buffer() 2011-02-07 15:04:42 -08:00
commit.h Add const to parse_{commit,tag}_buffer() 2011-02-07 15:04:42 -08:00
config.c Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
config.mak.in Merge branch 'jk/asciidoc-update' 2010-12-12 21:49:51 -08:00
configure.ac Merge branch 'jk/asciidoc-update' 2010-12-12 21:49:51 -08:00
connect.c
convert.c convert filter: supply path to external driver 2010-12-22 10:19:32 -08:00
copy.c
COPYING
csum-file.c
csum-file.h
ctype.c
daemon.c daemon: support <directory> arguments again 2011-01-04 11:23:42 -08:00
date.c
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'ks/blame-worktree-textconv-cached' 2010-12-21 14:30:52 -08:00
diff.h
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c Merge branch 'nd/maint-relative' into maint 2011-01-19 08:25:31 -08:00
dir.h Merge branch 'nd/maint-fix-add-typo-detection' 2010-12-22 14:40:26 -08:00
editor.c
entry.c entry.c: remove "checkout-index" from error messages 2010-11-29 14:03:07 -08:00
environment.c Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
exec_cmd.c exec_cmd: remove unused extern 2011-01-19 08:27:22 -08:00
exec_cmd.h
fast-import.c Merge branch 'rr/fi-import-marks-if-exists' 2011-02-09 16:41:16 -08:00
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
git-add--interactive.perl Merge branch 'jl/add-p-reverse-message' into maint 2010-12-09 10:36:47 -08:00
git-am.sh Merge branch 'jc/maint-rebase-rewrite-last-skip' into maint 2010-12-28 13:43:10 -08:00
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'jn/thinner-wrapper' 2010-12-03 16:13:06 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl Merge branch 'mg/cvsimport' 2011-01-05 13:30:29 -08:00
git-cvsserver.perl
git-difftool--helper.sh difftool: provide basename to external tools 2010-12-16 13:01:36 -08:00
git-difftool.perl difftool: Fix failure on Cygwin 2010-12-14 11:13:41 -08:00
git-filter-branch.sh
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-parse-remote.sh Merge branch 'mz/pull-rebase-rebased' 2010-12-12 21:49:51 -08:00
git-pull.sh Merge branch 'jl/fetch-submodule-recursive' 2010-12-16 12:57:15 -08:00
git-quiltimport.sh
git-rebase--interactive.sh Merge branch 'maint' 2011-01-27 10:27:49 -08:00
git-rebase.sh rebase: refactor reading of state 2011-02-10 14:08:07 -08:00
git-relink.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
git-remote-testgit.py
git-repack.sh Merge branch 'tr/maint-git-repack-tmpfile' into maint 2010-11-24 12:47:10 -08:00
git-request-pull.sh
git-send-email.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
git-sh-setup.sh
git-stash.sh
git-submodule.sh Merge branch 'tr/submodule-relative-scp-url' into maint 2011-01-19 08:26:41 -08:00
git-svn.perl git-svn: allow the mergeinfo property to be set 2010-12-10 04:09:48 +08:00
GIT-VERSION-GEN Git 1.7.4 2011-01-30 19:02:37 -08:00
git-web--browse.sh web--browse: better support for chromium 2010-12-03 14:05:32 -08:00
git.c alias: use run_command api to execute aliases 2011-01-06 16:29:49 -08:00
git.spec.in
graph.c
graph.h
grep.c
grep.h
hash.c
hash.h
help.c help: always suggest common-cmds if prefix of cmd 2010-12-05 12:15:12 -08:00
help.h
hex.c
http-backend.c http-backend: use end_url_with_slash() 2010-11-26 14:50:45 -08:00
http-fetch.c http-fetch: rework url handling 2010-11-26 14:50:46 -08:00
http-push.c http-push: add trailing slash at arg-parse time, instead of later on 2010-11-26 14:50:46 -08:00
http-walker.c
http.c Merge branch 'tc/http-urls-ends-with-slash' into maint 2010-12-14 07:36:10 -08:00
http.h shift end_url_with_slash() from http.[ch] to url.[ch] 2010-11-26 14:50:45 -08:00
ident.c ident: die on bogus date format 2010-12-20 10:28:19 -08:00
imap-send.c
INSTALL docs: default to more modern toolset 2010-11-24 15:13:58 -08:00
levenshtein.c
levenshtein.h
list-objects.c
list-objects.h
ll-merge.c ll-merge: simplify opts == NULL case 2011-01-15 20:34:14 -08:00
ll-merge.h
lockfile.c
log-tree.c
log-tree.h
mailmap.c
mailmap.h
Makefile Merge branch 'ae/better-template-failure-report' 2011-02-09 16:41:16 -08:00
match-trees.c
merge-file.c
merge-recursive.c Merge branch 'en/merge-recursive' 2010-11-29 17:52:35 -08:00
merge-recursive.h cherry-pick/revert: add support for -X/--strategy-option 2010-12-28 11:27:56 -08:00
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c
notes-merge.h
notes.c Merge branch 'jh/notes-merge' 2010-12-08 11:24:12 -08:00
notes.h Merge branch 'jh/notes-merge' 2010-12-08 11:24:12 -08:00
object.c
object.h
pack-check.c
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c
parse-options.c parse-options: make resuming easier after PARSE_OPT_STOP_AT_NON_OPTION 2010-12-07 14:19:32 -08:00
parse-options.h Merge branch 'jn/parse-options-extra' 2010-12-12 21:49:53 -08:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c
pkt-line.c
pkt-line.h
preload-index.c
pretty.c
progress.c
progress.h
quote.c
quote.h quote.h: simplify the inclusion 2011-02-07 15:15:17 -08:00
reachable.c
reachable.h
read-cache.c Merge branch 'jj/icase-directory' 2010-12-03 16:10:34 -08:00
README
reflog-walk.c Merge branch 'jk/maint-reflog-bottom' into maint 2010-12-14 07:35:50 -08:00
reflog-walk.h
refs.c
refs.h
RelNotes Prepare for 1.7.3.5 2010-12-28 13:48:54 -08:00
remote-curl.c
remote.c
remote.h
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
revision.h
run-command.c start_command: flush buffers in the WIN32 code path as well 2011-02-07 14:18:56 -08:00
run-command.h
send-pack.h
server-info.c
setup.c Merge branch 'cb/setup' 2011-02-09 16:41:16 -08:00
sha1_file.c sha1_object_info: examine cached_object store too 2011-02-07 15:05:48 -08:00
sha1_name.c Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
sha1-lookup.c
sha1-lookup.h
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c
strbuf.h
string-list.c
string-list.h
submodule.c fetch_populated_submodules(): document dynamic allocation 2010-12-09 23:42:05 -08:00
submodule.h
symlinks.c do not overwrite files in leading path 2010-12-14 08:55:12 -08:00
tag.c Add const to parse_{commit,tag}_buffer() 2011-02-07 15:04:42 -08:00
tag.h Add const to parse_{commit,tag}_buffer() 2011-02-07 15:04:42 -08:00
tar.h
test-chmtime.c
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mktemp.c Improve error messages when temporary file creation fails 2010-12-21 19:51:17 -08:00
test-obj-pool.c
test-parse-options.c
test-path-utils.c
test-run-command.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-pool.c
test-subprocess.c setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd 2010-12-27 08:34:19 -08:00
test-svn-fe.c
test-treap.c treap: make treap_insert return inserted node 2010-12-07 16:03:55 -08:00
thread-utils.c
thread-utils.h thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
trace.c trace.c: ensure NULL is not passed to printf 2011-01-06 12:21:49 -08:00
transport-helper.c thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
transport.c
transport.h
tree-diff.c
tree-walk.c
tree-walk.h
tree.c
tree.h
unimplemented.sh
unpack-trees.c Merge branch 'jc/unpack-trees' 2011-02-09 16:41:17 -08:00
unpack-trees.h use persistent memory for rejected paths 2010-12-14 08:55:13 -08:00
upload-pack.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08:00
url.c url: add str wrapper for end_url_with_slash() 2010-11-26 14:50:45 -08:00
url.h url: add str wrapper for end_url_with_slash() 2010-11-26 14:50:45 -08:00
usage.c
userdiff.c Merge branch 'tr/diff-words-test' 2011-02-09 16:41:17 -08:00
userdiff.h
utf8.c
utf8.h
walker.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08:00
walker.h
wrap-for-bin.sh
wrapper.c Improve error messages when temporary file creation fails 2010-12-21 19:51:17 -08:00
write_or_die.c
ws.c Make the tab width used for whitespace checks configurable 2010-12-01 14:47:51 -08:00
wt-status.c Merge branch 'aa/status-hilite-branch' 2010-12-16 12:50:03 -08:00
wt-status.h status: show branchname with a configurable color 2010-11-29 16:31:34 -08:00
xdiff-interface.c Merge branch 'rs/maint-diff-fd-leak' into maint 2010-12-26 11:18:39 -08:00
xdiff-interface.h
zlib.c

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

	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.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

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. 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://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.