summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2005-09-10Multi-backend merge driver.Libravatar Junio C Hamano5-2/+381
The new command 'git merge' takes the current head and one or more remote heads, with the commit log message for the automated case. If the heads being merged are simple fast-forwards, it acts the same way as the current 'git resolve'. Otherwise, it tries different merge strategies and takes the result from the one that succeeded auto-merging, if there is any. If no merge strategy succeeds auto-merging, their results are evaluated for number of paths needed for hand resolving, and the one with the least number of such paths is left in the working tree. The user is asked to resolve them by hand and make a commit manually. The calling convention from the 'git merge' driver to merge strategy programs is very simple: - A strategy program is to be called 'git-merge-<strategy>'. - They take input of this form: <common1> <common2> ... '--' <head> <remote1> <remote2>... That is, one or more the common ancestors, double dash, the current head, and one or more remote heads being merged into the current branch. - Before a strategy program is called, the working tree is matched to the current <head>. - The strategy program exits with status code 0 when it successfully auto-merges the given heads. It should do update-cache for all the merged paths when it does so -- the index file will be used to record the merge result as a commit by the driver. - The strategy program exits with status code 1 when it leaves conflicts behind. It should do update-cache for all the merged paths that it successfully auto-merged, and leave the cache entry in the index file as the same as <head> for paths it could not auto-merge, and leave its best-effort result with conflict markers in the working tree when it does so. - The strategy program exists with status code other than 0 or 1 if it does not handle the given merge at all. As examples, this commit comes with merge strategies based on 'git resolve' and 'git octopus'. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Plug leak in Daniel's read-tree.Libravatar Junio C Hamano1-0/+1
... and it is ready to be pushed out in the "master" branch. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Add debugging help for case #16 to read-tree.cLibravatar Junio C Hamano2-8/+44
This will help us detect if real-world example merges have multiple merge-base candidates and one of them matches one head while another matches the other head. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Disable debugging from read-tree.Libravatar Junio C Hamano1-3/+10
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Document the trivial merge rules for 3(+more ancestors)-way merges.Libravatar Daniel Barkalow1-0/+92
Signed-off-by: Daniel Barkalow Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Rewrite read-treeLibravatar Daniel Barkalow2-804/+421
Adds support for multiple ancestors, removes --emu23, much simplification. Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Add function to append to an object_list.Libravatar Daniel Barkalow2-0/+14
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Add a function for getting a struct tree for an ent.Libravatar Daniel Barkalow2-0/+24
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Fix 'git-show-branch --list <head>'Libravatar Junio C Hamano1-1/+1
It mistakenly failed to output anything when given a single head. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Add 'git bisect replay/log' documentation.Libravatar Junio C Hamano1-1/+11
... lest I get yelled at by a very angry scm ;-). Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Keep bisection log so that it can be replayed later.Libravatar Junio C Hamano1-3/+47
The 'git bisect' command was very unforgiving in that once you made a mistake telling it good/bad it was very hard to take it back. Keep a log of what you told it in an earlier session, so that it can be replayed after removing everything after what you botched last time. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Fix copy marking from diffcore-rename.Libravatar Junio C Hamano2-5/+39
When (A,B) ==> (B,C) rename-copy was detected, we incorrectly said that C was created by copying B. This is because we only check if the path of rename/copy source still exists in the resulting tree to see if the file is renamed out of existence. In this case, the new B is created by copying or renaming A, so the original B is lost and we should say C is a rename of B not a copy of B. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] archimport - add merge detectionLibravatar martin@catalyst.net.nz1-4/+180
We now keep track of the patches merged in each branch since they have diverged, using the records that the Arch "logs" provide. Merge parents for a commit are defined if we are merging a series of patches that starts from the mergebase. If patches from a related branch are merged out-of-order, we keep track of how much has been merged sequentially -- the tip of that sequential merge is our new parent from that branch. This mechanism works very well for branches that merge in dovetail and/or flying fish patterns, probably less well for others. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10Make sure we have leading directories under refs/{heads,tags}Libravatar Junio C Hamano1-0/+1
Otherwise having subdirectories under refs/heads becomes rather unwieldy. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-10[PATCH] Documentation/repository-layout.txt typoLibravatar Sven Verdoolaege1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09show-branch: --list and --independentLibravatar Junio C Hamano2-17/+73
The --list option is what 'git branch' without parameter should have been; it shows the one-line commit message for each branch name. The --independent option is used to filter out commits that can be reachable from other commits, to make detection of fast forward condition in multi-head merge easier. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09Retire support for old environment variables.Libravatar Junio C Hamano13-318/+16
We have deprecated the old environment variable names for quite a while and now it's time to remove them. Gone are: SHA1_FILE_DIRECTORIES AUTHOR_DATE AUTHOR_EMAIL AUTHOR_NAME COMMIT_AUTHOR_EMAIL COMMIT_AUTHOR_NAME SHA1_FILE_DIRECTORY Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09Adjust .gitignore for big rename.Libravatar Junio C Hamano1-1/+45
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09[PATCH] remove duplicate git-send-email-script.perl target in MakefileLibravatar Marco Roeland1-1/+1
Remove duplicate git-send-email-perl target in Makefile. When WITH_SEND_EMAIL was defined, as in the Debian 'deb' target, git-send-email-perl was added twice to SCRIPT_PERL, leading to a duplicate definition in the Makefile. Creating a ".deb" then failed. Signed-off-by: Marco Roeland <marco.roeland@xs4all.nl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09[PATCH] fix tutorial typoLibravatar jdl@freescale.com1-1/+1
Fix a minor typo in the tutorial.txt. Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09[PATCH] Fix tutorial reference to git-*-scripts.Libravatar jdl@freescale.com1-5/+5
There was a lingering reference to the git-*-scripts in the tutorial. This patch reworks that paragraph a bit. Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09Ignore datestamp-only changes when installing webdoc.Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08Squelch `removal' message from 'git reset --hard'.Libravatar Junio C Hamano1-1/+1
We do not say anything about checking out, so mentioning removal only gets unnecessarily alarming. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08'build' scripts before installing.Libravatar Junio C Hamano5-25/+33
Earlier we renamed git-foo.sh to git-foo while installing, which was mostly done by inertia than anything else. This however made writing tests to use scripts harder. This patch builds the scripts the same way as we build binaries from their sources. As a side effect, you can now specify non-standard paths you have your Perl binary is in when running the make. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08Show all merge-base candidates from show-branch --merge-baseLibravatar Junio C Hamano2-5/+7
This would make things easier to use for Octopus. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Documentation updates.Libravatar Junio C Hamano4-28/+74
Fill in more missing documentation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] git-daemon --inetdLibravatar lars.doelle@on-line.de1-1/+3
git-daemon using inetd. does not work properly. inetd routes stderr onto the network line just like stdout, which was apparently not expected to be so. As the result of this, the stream is closed by the receiver, because some "Packing %d objects\n" originating from pack_objects is first reported over the line instead of the expected pack_header, and so the SIGNATURE test fails. Here is a workaround. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07git --version tells which version of git you have.Libravatar Junio C Hamano2-2/+13
Originally from Martin Atukunda <matlads@dsmagic.com> but adjusted for post-rename code. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Do not create bogus branch from flag to git branchLibravatar Amos Waterland2-0/+43
If you run `git branch --help', you will unexpectedly have created a new branch named "--help". This simple patch adds logic and a usage statement to catch this and similar problems, and adds a testcase for it. Signed-off-by: Amos Waterland <apw@rossby.metr.ou.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Portability fix for Solaris 10/x86Libravatar Patrick Mauritz3-3/+19
* getdomainname unavailable there. * needs -lsocket for linkage. * needs __EXTENSIONS__ at the beginning of convert-objects.c [JC: I've done this slightly differently from what Patrick originally sent to the list and dropped the bit that deals with installations that has curl header and library at non-default location. I am resisting the slipperly slope called autoconf.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Big tool rename.Libravatar Junio C Hamano160-915/+1023
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-09-07GIT 0.99.6Libravatar Junio C Hamano2-1/+7
2005-09-07[PATCH] Simplify git scriptLibravatar David_Kågedal1-3/+1
The code for listing the available subcommands was unnecessarily complex. Signed-off-by: David Kågedal <davidk@lysator.liu.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Documentation updates.Libravatar Junio C Hamano1-12/+12
More commands are documented now; thanks Raymond. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Docs for git-build-rev-cache.Libravatar A Large Angry SCM1-10/+10
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Docs for git-show-rev-cache.Libravatar A Large Angry SCM1-10/+9
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Docs for git-reset-script.Libravatar A Large Angry SCM1-9/+16
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07[PATCH] Docs for git-checkout-script.Libravatar A Large Angry SCM1-9/+14
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Documentation updates.Libravatar Junio C Hamano4-18/+167
parse-remote and rev-parse gets full documentation. Add skeleton for archimport. Link them from the main git(7) page. Also move git-daemon and git-request-pull out of 'undocumented' section. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Flatten tools/ directory to make build procedure simpler.Libravatar Junio C Hamano7-40/+36
Also make platform specific part more isolated. Currently we only have Darwin defined, but I've taken a look at SunOS specific patch (which I dropped on the floor for now) as well. Doing things this way would make adding it easier. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-06mailinfo: barf and exist upon nested multipart.Libravatar Junio C Hamano1-0/+4
At least we can detect what we do not handle. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-06Merge branch 'master' of . Libravatar Junio C Hamano8-30/+58
2005-09-06[PATCH] Update documentation for git-get-tar-commit-idLibravatar Rene Scharfe3-15/+16
... and add a copyright notice. [jc: also move its entry in git.txt from undocumented section.] Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-06[PATCH] git-cvsimport-script: handling of tagsLibravatar H. Peter Anvin2-11/+39
This patch changes git-cvsimport-script so that it creates tag objects instead of refs to commits, and adds an option, -u, to convert underscores in branch and tag names to dots (since CVS doesn't allow dots in branches and tags.) Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-06Format fix for asciidoc documentation titles.Libravatar Junio C Hamano3-4/+3
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-05Merge branch 'master' of . Libravatar Junio C Hamano7-111/+134
2005-09-05Retire git-clone-dumb-http.Libravatar Junio C Hamano5-102/+43
... and fold it into git-clone-script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-04[PATCH] Update documentation of --compose to git-send-email-script.txtLibravatar Ryan Anderson1-4/+9
Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-04[PATCH] Make git-send-email-script ignore some unnecessary options when ↵Libravatar Ryan Anderson1-5/+81
operating in batch mode. Add a "--compose" option that uses $EDITOR to edit an "introductory" email to the patch series. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-04Install archimport-script.Libravatar Junio C Hamano1-0/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>