summaryrefslogtreecommitdiff
path: root/git-pull-script
AgeCommit message (Collapse)AuthorFilesLines
2005-09-07Big tool rename.Libravatar Junio C Hamano1-44/+0
As promised, this is the "big tool rename" patch. The primary differences since 0.99.6 are: (1) git-*-script are no more. The commands installed do not have any such suffix so users do not have to remember if something is implemented as a shell script or not. (2) Many command names with 'cache' in them are renamed with 'index' if that is what they mean. There are backward compatibility symblic links so that you and Porcelains can keep using the old names, but the backward compatibility support is expected to be removed in the near future. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-26Fix pulling into the same branch.Libravatar Junio C Hamano1-1/+19
When the "git pull" command updates the branch head you are currently on, before doing anything else, first update your index file and the working tree contents to that of the new branch head. Otherwise, the later resolving steps would think your index file is attempting to revert the change between the original head commit and the updated head commit. It uses two-tree fast-forward form of "read-tree -m -u" to prevent losing whatever local changes you may have in the working tree to do this update. I think this would at least make things safer (a lot safer), and prevent mistakes. Also "git fetch" command is forbidden from fetching and fast forwarding the current branch head unless --update-head-ok flag is given. "git pull" passes the flag when it internally calls "git fetch". Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-24[PATCH] Use git-octopus when pulling more than one heads.Libravatar Junio C Hamano1-2/+12
With this, you can finally say "git pull jgarzik sil24 pdc2027x". Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-08-24[PATCH] Retire git-parse-remote.Libravatar Junio C Hamano1-5/+9
Update git-pull to match updated git-fetch and allow pull to fetch from multiple remote references. There is no support for resolving more than two heads, which will be done with "git octopus". Update "git ls-remote" to use git-parse-remote-script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-07-16[PATCH] fetch/pull: short-hand notation for remote repositories.Libravatar Junio C Hamano1-16/+3
Since pull and fetch are done often against the same remote repository repeatedly, keeping the URL to pull from along with the name of the head to use in $GIT_DIR/branches/$name makes a lot of sense. Adopt that convention from Cogito, and try to be compatible when possible; storing a partial URL and completing it with a trailing path may not be understood by Cogito. While we are at it, fix pulling a tag. Earlier, we updated only refs/tags/$tag without updating FETCH_HEAD, and called resolve-script using a stale (or absent) FETCH_HEAD. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-08Make "git resolve" take the merge message in $3Libravatar Linus Torvalds1-1/+1
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-08Add "git-sh-setup-script" for common git shell script setupLibravatar Linus Torvalds1-3/+2
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-06-28Duh. Fix transposed characters in git-pull-scriptLibravatar Linus Torvalds1-1/+1
I'd stupidly only tested the non-branch-name version.
2005-06-27Teach git-pull-script about pulling tagsLibravatar Linus Torvalds1-2/+7
2005-06-21Clean up different special *HEAD handlingLibravatar Linus Torvalds1-1/+1
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-08Make default merge messages denser.Libravatar Linus Torvalds1-3/+1
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-06Make fetch/pull scripts terminate cleanly on errorsLibravatar Linus Torvalds1-1/+1
Don't continue with a merge if the fetch failed.
2005-05-25git-pull-script: pretty-print the merge head informationLibravatar Linus Torvalds1-3/+12
This also drops the common ".git" part from the end of the repo name, and if a non-default head reference is given, makes a nicer commit message about it.
2005-05-22Split up git-pull-script into separate "fetch" and "merge" phases.Libravatar Linus Torvalds1-33/+1
This allows you to just fetch stuff first, inspect it, and then resolve the merge separately if everything looks good.
2005-05-09Introduce GIT_DIR environment variable.Libravatar Junio C Hamano1-5/+11
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-06Add http and local transport support for git-pull-script.Libravatar Junio C Hamano1-6/+31
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-05Split "git-pull-script" into two partsLibravatar Linus Torvalds1-45/+1
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-05git-pull-script: do the diffstat also for the fast-forward caseLibravatar Linus Torvalds1-0/+1
This way you always see what the state change was.
2005-05-04Teach "git-pull-script" about alternate HEAD's to pull..Libravatar Linus Torvalds1-2/+3
People are already starting to use a multi-head model.
2005-05-04git-pull-script: add a final "diffstat" to show the result of the merge.Libravatar Linus Torvalds1-0/+1
This is useful to verify that you got the right thing.
2005-04-29Update the merge scripts for the big git rename.Libravatar Linus Torvalds1-11/+11
Let's see what else I forgot..
2005-04-29[PATCH] GIT: Honour SHA1_FILE_DIRECTORY env var in git-pull-scriptLibravatar Rene Scharfe1-1/+1
If you set SHA1_FILE_DIRECTORY to something else than .git/objects git-pull-script will store the fetched files in a location the rest of the tools does not expect. git-prune-script also ignores this setting, but I think this is good, because pruning a shared tree to fit a single project means throwing away a lot of useful data. :-) Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-26git-pull-script: do automatic mergesLibravatar Linus Torvalds1-3/+11
When the trivial "read-tree" merge fails, fall back on the (equally trivial) automatic merge script instead of forcing the user to do it by hand. When _that_ fails, you get to do a manual merge.
2005-04-19Update "git-pull-script" to use "read-tree -m" forLibravatar Linus Torvalds1-2/+2
reading a single tree too. That should speed up a trivial merge noticeably. Also, don't bother reading back the tree we just wrote when we committed a real merge. It had better be the same one we still have..
2005-04-19Make git-pull-script do the right thing for symlinked HEAD's.Libravatar Linus Torvalds1-1/+3
Also exit gracefully if the HEAD pull failed, rather than use a possibly stale MERGE_HEAD.
2005-04-18[PATCH] Do not let rsync obliterate .git/object symbolic link.Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-18Add "update-cache --refresh" to git-pull-script to make sureLibravatar Linus Torvalds1-2/+2
out index is all ready to go after a pull. Noted by Russell King
2005-04-18Add the simple scripts I used to do a merge with content conflicts.Libravatar Linus Torvalds1-0/+46
They sure as hell aren't perfect, but they allow you to do: ./git-pull-script {other-git-directory} to do the initial merge, and if that had content clashes, you do merge-cache ./git-merge-one-file-script -a which tries to auto-merge. When/if the auto-merge fails, it will leave the last file in your working directory, and you can edit it and then when you're happy you can do "update-cache filename" on it. Re-do the merge-cache thing until there are no files left to be merged, and now you can write the tree and commit: write-tree commit-tree .... -p $(cat .git/HEAD) -p $(cat .git/MERGE_HEAD) and you're done.