Commit Graph

22 Commits

Author SHA1 Message Date
Junio C Hamano
86b13da46c scripts: equality test '==' is not portable.
On NetBSD 3 we trigger an error:

    [: ==: unexpected operator

Double-equal is accepted by bash built-in '[' and bash(1) suggests
using '=' for strict POSIX compliance (test(1) from coreutils does not
mention '==').  Eradicate their uses everywhere.

[jc: Somebody with a pseudonym kindly sent a message to let
 me know about the problem privately; I do not have access to a NetBSD
 box.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-02 10:53:15 -07:00
Junio C Hamano
9585e40622 Try to find the optimum merge base while resolving.
The merge-base command acquires a new option, '--all', that causes it
to output all the common ancestor candidates.  The "git resolve"
command then uses it to pick the optimum merge base by picking the one
that results in the smallest number of nontrivial merges.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-23 21:08:59 -07:00
Junio C Hamano
165e160e4c git-resolve: dying is good, not showing help is bad.
Recent change to make sure we get commit, not tag, accidentally
removed its feature of giving a usage help message when it died.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-20 01:21:21 -07:00
Linus Torvalds
02a4a32c2d [PATCH] Make sure git-resolve-script always works on commits
You can resolve a tag, and it does the right thing except that it might
end up writing the tag itself into the resulting HEAD, which will confuse
subsequent operations no end.

This makes sure that when we resolve two heads, we will have turned them
into proper commits before we start acting on them.

This also fixes the parsing of "treeish^0", which would incorrectly
resolve to "treeish" instead of causing an error.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-13 18:28:50 -07:00
Junio C Hamano
f6e1a4d6dc [PATCH] Audit rev-parse users.
This patch changes rev-parse users that pass a single argument
that is supposed to be a rev parameter to use "--verify".

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-22 20:34:16 -07:00
Linus Torvalds
3ba513c32e Make "git resolve" take the merge message in $3
It used to do "Merge $3" as the message, but that ends up being
inconvenient, and much more easily done inside git-pull-script instead.

This makes the third argument to "git resolve" much easier to explain.
2005-07-08 17:38:44 -07:00
Linus Torvalds
b33e966608 Add "git-sh-setup-script" for common git shell script setup
It sets up the normal git environment variables and a few helper
functions (currently just "die()"), and returns ok if it all looks like
a git archive.  So use it something like

	. git-sh-setup-script || die "Not a git archive"

to make the rest of the git scripts more careful and readable.
2005-07-08 10:57:21 -07:00
Linus Torvalds
6b38a402e9 Clean up different special *HEAD handling
We codify the following different heads (in addition to the main "HEAD",
which points to the current branch, of course):

 - FETCH_HEAD

   Populated by "git fetch"

 - ORIG_HEAD

   The old HEAD before a "git pull/resolve" (successful or not)

 - LAST_MERGE

   The HEAD we're currently merging in "git pull/resolve"

 - MERGE_HEAD

   The previous head of a unresolved "git pull", which gets committed by
   a "git commit" after manually resolving the result

We used to have "MERGE_HEAD" be populated directly by the fetch, and we
removed ORIG_HEAD and LAST_MERGE too aggressively.
2005-06-21 14:04:13 -07:00
Dan Holmsand
c591412cc0 [PATCH] git-resolve-script: Add LAST_MERGE and use git-rev-parse
Make git-resolve-script only write MERGE_HEAD if a merge actually
occurred. All merge failures leave ORIG_HEAD and LAST_MERGE
behind (instead of ORIG_HEAD and MERGE_HEAD).

Use git-rev-parse to expand arguments (and check for bad ones).

Signed-off-by: Dan Holmsand <holmsand@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-20 15:49:39 -07:00
Linus Torvalds
55a716cc8c Clean up MERGE_HEAD and ORIG_HEAD also for the trivial fast-forward merges.
Otherwise you'll be bitten by a stale MERGE_HEAD like Jeff was..
2005-06-19 19:42:21 -07:00
Linus Torvalds
40d8cfe411 Trivial git script fixups
Fix permissions, and add trivial "reset" and "add" scripts.

The "reset" script just resets the index back to head, while the "add"
script is just a crutch for people used to do "cvs add".
2005-06-14 18:56:05 -07:00
Linus Torvalds
9c065315f7 Make "git commit" work correctly in the presense of a manual merge
This has gotten only very light testing, but something like this is
clearly necessary and did the right thing for the one case I threw at
it.
2005-06-08 13:33:15 -07:00
Linus Torvalds
5b1ea09de1 Make default merge messages denser.
In particular, make them readable on one line since that's what all the
tools like git-shortlog and gitk end up showing.
2005-06-08 10:09:41 -07:00
Linus Torvalds
e5b905c448 git-resolve-script: stop when the automated merge fails
No point in doing a tree write that will just throw
confusing messages on the screen.
2005-06-06 19:37:25 -07:00
Linus Torvalds
3f4eff7530 git-resolve-script: don't wait for three seconds any more
We used to overwrite peoples dirty state.  We don't any more.  So don't
print the scary message and don't delay, just do the update already.
2005-06-06 17:39:14 -07:00
Linus Torvalds
220a0b527b More work on merging with git-read-tree..
Add a "-u" flag to update the tree as a result of a merge.

Right now this code is way too anal about things, and fails merges it
shouldn't, but let me fix up the different cases and this will allow for
much smoother merging even in the presense of dirty data in the working
tree.
2005-06-05 22:07:31 -07:00
Linus Torvalds
02ede67ad4 git-read-tree: be a lot more careful about merging dirty trees
We don't want to overwrite state that we haven't committed yet
when merging, so it's better to make git-read-tree fail than
end up with a merge tree that ends up not having the dirty changes.

Update git-resolve-script to fail cleanly when git-read-tree fails.
2005-06-05 20:02:31 -07:00
Linus Torvalds
866b973b5d git-resolve-script: use "git-apply --stat" instead of diffstat
Not everybody necessarily even has diffstat installed.
2005-05-30 17:45:41 -07:00
Jeff Garzik
ea88ee46de [PATCH] optimize git-resolve-script
This change was suggested for my git-switch-tree script, and the same
issues apply to core git's git-resolve-script as well.
2005-05-25 11:59:37 -07:00
Junio C Hamano
8ac069ac0a Introduce GIT_DIR environment variable.
During the mailing list discussion on renaming GIT_ environment
variables, people felt that having one environment that lets the
user (or Porcelain) specify both SHA1_FILE_DIRECTORY (now
GIT_OBJECT_DIRECTORY) and GIT_INDEX_FILE for the default layout
would be handy.  This change introduces GIT_DIR environment
variable, from which the defaults for GIT_INDEX_FILE and
GIT_OBJECT_DIRECTORY are derived.  When GIT_DIR is not defined,
it defaults to ".git".  GIT_INDEX_FILE defaults to
"$GIT_DIR/index" and GIT_OBJECT_DIRECTORY defaults to
"$GIT_DIR/objects".

Special thanks for ideas and discussions go to Petr Baudis and
Daniel Barkalow.  Bugs are mine ;-)

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-09 22:57:58 -07:00
Linus Torvalds
d5a72fd622 Fix git-resolve-script.
I'd stupidly forgotten one merge_head -> merge conversion, and
all my tests were for the fast-forward case that never triggered
the bug.
2005-05-05 16:07:56 -07:00
Linus Torvalds
67cc5c4ef8 Split "git-pull-script" into two parts
Separate out the merge resolve from the actual getting of the
data. Also, update the resolve phase to take advantage of the
fact that we don't need to do the commit->tree object lookup
by hand, since all the actors involved happily just act on a
commit object these days.
2005-05-05 11:43:30 -07:00