summaryrefslogtreecommitdiff
path: root/git-merge-one-file.sh
AgeCommit message (Collapse)Author
2006-04-13Shell utilities: Guard against expr' magic tokens.Mark Wooding
Some words, e.g., `match', are special to expr(1), and cause strange parsing effects. Track down all uses of expr and mangle the arguments so that this isn't a problem. Signed-off-by: Mark Wooding <mdw@distorted.org.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-06trivial: remove the dots at the end of file names from merge-one-fileAlex Riesen
to make the output more friendly to mouse copy-paste. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07git-merge-one: new merge world order.Junio C Hamano
This does two things: - Use new --stage=2 option to create the working tree file with leading paths and correct permission bits using checkout-index, as before. - Make sure we do not confuse "merge" program when the file being merged has an unfortunate name, '-L'. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-06git-merge-one-file: resurrect leading path creation.Junio C Hamano
Since we do not use git-update-index followed by git-checkout-index -u to create the half-merged file on conflicting case anymore, we need to make sure the leading directories are created here. Maybe a better solution would be to allow update-index to add to higher stage, and checkout-index to extract from such, but that is a change slightly bigger than I would like to have so close to 1.0, so this should do for now. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-02merge-one-file: make sure we do not mismerge symbolic links.Junio C Hamano
We ran "merge" command on O->A, O->B, A!=B case without verifying the path involved is not a symlink. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-02merge-one-file: make sure we create the merged file.Junio C Hamano
The "update-index followed by checkout-index" chain served two purposes -- to collapse the index to "our" version, and make sure that file exists in the working tree. In the recent update to leave the index unmerged on conflicting path, we wanted to stop doing the former, but we still need to do the latter (we allow merging to work in an un-checked-out working tree). Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-02git-merge-one-file: do not worry about 'rmdir -p' not removing directory.Junio C Hamano
9ae2172aed289f2706a0e88288909fa47eddd7e7 used "rmdir -p" carelessly, causing the more important "git-update-index --remove" to be skipped. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-30merge-one-file: leave unmerged index entries upon automerge failure.Linus Torvalds
When automerge fails, we used to collapse the path to stage0 from "our" branch, to help "diff-files" users to view the half-merged state against the current HEAD. Now diff-files has been taught how to compare with unmerged stage2,leaving them unmerged is a better thing to do, especially this prevents the unresolved conflicts to be committed by mistake. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20merge-one-file: use rmdir -pJunio C Hamano
The flag is universally available, even on VMS; use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20merge-one-file: remove empty directoriesJunio C Hamano
When the last file in a directory is removed as the result of a merge, try to rmdir the now-empty directory. [jc: We probably could use "rmdir -p", but for now we do that by hand for portability.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-12merge-one-file: use empty- or common-base condintionally in two-stage merge.Junio C Hamano
If two sides added the same path completely different thing, it is easier to see the merge pivoting on /dev/null. So check the size of the common section we have found, and empty it if it is too small. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-12merge-one-file: use common as base, instead of emptiness.Junio C Hamano
Unlike the previous round that merged the path added differently in each branches using emptiness as the base, compute a common version and use it as input to 'merge' program. This would show the resulting (still conflicting) file left in the working tree as: common file contents... <<<<<< FILENAME version from our branch... ====== version from their branch... >>>>>> .merge_file_XXXXXX more common file contents... when both sides added similar contents. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-12merge with /dev/null as base, instead of punting O==empty caseJunio C Hamano
Instead of leaving the path unmerged in a case where each side adds different version of the same path, attempt to merge it with empty base and leave "our" version in the index file, just like we do for the case in conflicting merge. 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>