summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-09-11Multi-backend merge driver.Junio C Hamano
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-11Plug leak in Daniel's read-tree.Junio C Hamano
... and it is ready to be pushed out in the "master" branch. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-11[PATCH] Add debugging help for case #16 to read-tree.cJunio C Hamano
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-11[PATCH] Disable debugging from read-tree.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-11[PATCH] Document the trivial merge rules for 3(+more ancestors)-way merges.Daniel Barkalow
Signed-off-by: Daniel Barkalow Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-11[PATCH] Rewrite read-treeDaniel Barkalow
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-11[PATCH] Add function to append to an object_list.Daniel Barkalow
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-11[PATCH] Add a function for getting a struct tree for an ent.Daniel Barkalow
Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-11Fix 'git-show-branch --list <head>'Junio C Hamano
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.Junio C Hamano
... 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.Junio C Hamano
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.Junio C Hamano
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 detectionmartin@catalyst.net.nz
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}Junio C Hamano
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 typoSven Verdoolaege
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09show-branch: --list and --independentJunio C Hamano
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.Junio C Hamano
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.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09[PATCH] remove duplicate git-send-email-script.perl target in MakefileMarco Roeland
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 typojdl@freescale.com
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.jdl@freescale.com
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.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-09Squelch `removal' message from 'git reset --hard'.Junio C Hamano
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-09'build' scripts before installing.Junio C Hamano
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-baseJunio C Hamano
This would make things easier to use for Octopus. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08Documentation updates.Junio C Hamano
Fill in more missing documentation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08[PATCH] git-daemon --inetdlars.doelle@on-line.de
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-08git --version tells which version of git you have.Junio C Hamano
Originally from Martin Atukunda <matlads@dsmagic.com> but adjusted for post-rename code. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-08[PATCH] Do not create bogus branch from flag to git branchAmos Waterland
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-08[PATCH] Portability fix for Solaris 10/x86Patrick Mauritz
* 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-08Big tool rename.Junio C Hamano
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.6v0.99.6Junio C Hamano
2005-09-07[PATCH] Simplify git scriptDavid_Kågedal
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.Junio C Hamano
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.A Large Angry SCM
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.A Large Angry SCM
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.A Large Angry SCM
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.A Large Angry SCM
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07Documentation updates.Junio C Hamano
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.Junio C Hamano
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.Junio C Hamano
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 . Junio C Hamano
2005-09-06[PATCH] Update documentation for git-get-tar-commit-idRene Scharfe
... 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 tagsH. Peter Anvin
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.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-05Merge branch 'master' of . Junio C Hamano
2005-09-05Retire git-clone-dumb-http.Junio C Hamano
... and fold it into git-clone-script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-05[PATCH] Update documentation of --compose to git-send-email-script.txtRyan Anderson
Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-05[PATCH] Make git-send-email-script ignore some unnecessary options when ↵Ryan Anderson
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-05Install archimport-script.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>