aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Make "parse_commit" return the "struct revision" for the commit.Linus Torvalds2005-04-17
| | | | | | | | Also, make it a fatal error to pass in a non-commit object. The callers never checked, so better check here. This simplifies merge-base further. It's now so trivial that it's almost ridiculous.
* Do a very simple "merge-base" that finds the most recent commonLinus Torvalds2005-04-17
| | | | | | | | parent of two commits. The question of "best" commit can probably be tweaked almost arbitrarily. In particular, trying to take things like how big the tree differences are into account migt be a good idea. This one is just very simple.
* Make "rev-tree.c" use the new-and-improved "mark_reachable()"Linus Torvalds2005-04-17
| | | | | It used to have its own specialized version for marking the sub-reachability bits.
* Make "revision.h" slightly better to use.Linus Torvalds2005-04-17
| | | | | | | - mark_reachable() can be more generic, marking the reachable revisions with an arbitrary mask. - date parsing will parse to a date of 0 rather than ULONG_MAX for the bad old case, sorting the dates correctly.
* Move "parse_commit()" into common revision.h file.Linus Torvalds2005-04-17
| | | | | | | | This also drops the old-style date parsing. We just don't care enough, since we dropped that format pretty early. Yes, this could do with some cleanup, and a common library file. Some day.
* [PATCH] fix for memory leak in write-tree.cBrad Roberts2005-04-17
| | | | | Fix a memory leak in write-tree.c, not freeing the directory buffer.
* [PATCH] Fix +x-related show-diff false positivesPetr Baudis2005-04-17
| | | | | | | | | | | | This fixes show-diff listing all +x files as differring. Signed-off-by: Petr Baudis <pasky@ucw.cz> [ That's what I get for working on a G5 - my testing was all big-endian in the first place. -- Linus ] Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Remove unused arguments from index_fd()Junio C Hamano2005-04-17
| | | | | | | | | | | | | The function index_fd() in update-cache.c takes 5 arguments, but two is not necessary and one that is a pointer to a structure really needs to be a pointer to one member of that structure. This patch cleans it up. Also it removes printf() apparently left after initial debugging. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Better error message from checkout-cache for unmerged files.Junio C Hamano2005-04-17
| | | | | | | | | | The checkout-cache command says "file is not in the cache" when an unmerged path is given. This patch adds code to distinguish the unmerged and the nonexistent cases and gives an appropriate error message. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Fix total permission bogosity in "checkout-cache.c".Linus Torvalds2005-04-17
| | | | | | | | Use the proper octal mode naming instead of random decimal crud, and don't reset the mode after the create with fchmod: the whole point was to let "umask" do its thing. Duh.
* [PATCH] update-cache --remove marks the path merged.Junio C Hamano2005-04-17
| | | | | | | | | | | | | When update-cache --remove is run, resolve unmerged state for the path. This is consistent with the update-cache --add behaviour. Essentially, the user is telling us how he wants to resolve the merge by running update-cache. Signed-off-by: Junio C Hamano <junkio@cox.net> Fixed to do the right thing at the end. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] show-diff.c: do not include unused header fileJunio C Hamano2005-04-17
| | | | | | | | This is my bad. I added #include <ctype.h> to the file, which I ended up not using and failed to remove it. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Be much more liberal about the file mode bits.Linus Torvalds2005-04-16
| | | | | | We only really care about the difference between a file being executable or not (by its owner). Everything else we leave for the user umask to decide.
* [PATCH] Do not run useless show-diff on unmerged paths repeatedly.Junio C Hamano2005-04-16
| | | | | | | | | | | | | | | When run on unmerged dircache, show-diff compares the working file with each non-empty stage for that path. Two out of three times, this is not very helpful. This patch makes it report the unmergedness only once per each path and avoids running the actual diff. Upper layer SCMs like Cogito are expected to find out mode/SHA1 for each stage by using "show-files --stage" and run the diff itself. This would result in more sensible diffs. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] show-diff style fix.Junio C Hamano2005-04-16
| | | | | | | | | This fixes some stylistic problems introduced by my previous set of patches. I'll be sending my last patch to show-diff next, which depends on this cleanup. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Rename confusing variable in show-diffJunio C Hamano2005-04-16
| | | | | | | | | | The show-diff command uses a variable "new" but it is always used to point at the original data recorded in the dircache before the user started editing in the working file. Rename it to "old" to avoid confusion. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] show-diff shell safetyJunio C Hamano2005-04-16
| | | | | | | | | | | | | | | | The command line for running "diff" command is built without taking shell metacharacters into account. A malicious dircache entry "foo 2>bar" (yes, a filename with space) would result in creating a file called "bar" with the error message "diff: foo: No such file or directory" in it. This is not just a user screwing over himself. Such a dircache can be created as a result of a merge with tree from others. Here is a fix. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] show-diff -z option for machine readable output.Junio C Hamano2005-04-16
| | | | | | | | | | | This patch adds the -z option to the show-diff command, primarily for use by scripts. The information emitted is similar to that of -q option, but in a more machine readable form. Records are terminated with NUL instead of LF, so that the scripts can deal with pathnames with embedded newlines. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Optionally tell show-diff to show only named filesJunio C Hamano2005-04-16
| | | | | | | | | | | SCMs have ways to say "I want diff only this particular file", or "I want diff files under this directory". This patch teaches show-diff to do something similar. Without command line arguments, it still examines everything in the dircache as before. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Un unoptimize ls-tree behaviourJunio C Hamano2005-04-16
| | | | | | | | | | | | | | | | ls-tree unconditionally called read_sha1_file() for all paths even when not needed, which was a mistake introduced by me. Rectify this by first checking S_ISDIR(mode) and read the tree contents only when it is a tree and we are recursive. There is no need to read it in any other cases. The patch also removes the confusing comment that led to this incorrect implementation. Thanks to Peter Baudis for noticing this problem. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Add "--unmerged" flag to "show-files", which does what the name implies.Linus Torvalds2005-04-16
| | | | | The flag also implies "--stage", since unmerged file information doesn't make sense without the full output.
* Remove "merge-tree.c"Linus Torvalds2005-04-16
| | | | | | It's there in the history if somebody wants to resurrect it, but it seems to have been successfully superceded by the new and improved index-merge thing, where we do all merging entirely in the index.
* When inserting a index entry of stage 0, remove all old unmerged entries.Linus Torvalds2005-04-16
| | | | This allows you to actually tell git that you've resolved a conflict.
* Make 'read-tree' do a few more of the trivial merge cases.Linus Torvalds2005-04-16
| | | | | | This cuts down the work for the "real merge" to stuff where people might actually disagree on the algorithm. The trivial cases would seem to be totally independent of any policy.
* [PATCH] Add --stage to show-files for new stage dircache.Junio C Hamano2005-04-16
| | | | | | | | | This adds --stage option to show-files command. It shows file-mode, SHA1, stage and pathname. Record separator follows the usual convention of -z option as before. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Byteorder fix for read-tree, new -m semantics version.Junio C Hamano2005-04-16
| | | | | | | | | | | | The ce_namelen field has been renamed to ce_flags and split into the top 2-bit unused, next 2-bit stage number and the lowest 12-bit name-length, stored in the network byte order. A new macro create_ce_flags() is defined to synthesize this value from length and stage, but it forgets to turn the value into the network byte order. Here is a fix. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Make "read-tree" merge the trees it reads by giving them consecutive states.Linus Torvalds2005-04-15
| | | | | | | | | Normally you'd use state 0 for the "merged" state, and start out with state 1 being "origin", state 2 being "first tree" and state 3 being "second tree". Once all the index entries are back in state 0, we have a successful merge and can write the result tree back.
* Make cache entry comparison take the new "state" flag into account.Linus Torvalds2005-04-15
| | | | | This is what allows us to have multiple states of the same file in the index, and what makes it always sort correctly.
* write-tree: refuse to write out trees with unmerged index entries.Linus Torvalds2005-04-15
| | | | | | | Of course, we can't even generate such an index yet, but give me some time. This is a cunning plan. Let's see if it actually works. (I feel like Wile E Coyote, waiting for the big rock to fall).
* Encode a few extra flags per index entry.Linus Torvalds2005-04-15
| | | | | | This will allow us to have the same name in different "states" in the index at the same time. Which in turn seems to be a very simple way to merge.
* Simplify show-diff cache entry name handling.Linus Torvalds2005-04-15
| | | | | The cache-entry names are all proper strings, no need to worry about their length.
* [PATCH] Add '-z' to merge-tree.cJunio C Hamano2005-04-15
| | | | | | | | This adds '-z' to merge-tree and changes its default line termination to LF to make it consistent with your other recent changes. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Make "diff-tree" have similar behaviour as "ls-tree" wrt line termination.Linus Torvalds2005-04-15
| | | | | Default to the human-readable '\n', but make the scriptable "-z" flag do the old '\0' behaviour.
* [PATCH] Add "-q" option to show-diff.cJunio C Hamano2005-04-15
| | | | | | | | | | | | | | | | | This adds the '-q' option for show-diff.c to squelch complaints for missing files. It is handy if you want to run it in the merge temporary directory after running merge-trees with its minimum checkout mode, which is the default, because you would not find any files other than the ones that needs human validation after the merge there. It also fixes the argument parsing bug Paul Mackerras noticed in <16991.42305.118284.139777@cargo.ozlabs.ibm.com> but slightly differently. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] Add -z option to show-filesJunio C Hamano2005-04-15
| | | | | | | | This adds NUL-terminated output (-z) to show-files. This is necessary for merge-trees script to deal with filenames with embedded newlines. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Add "--cacheinfo" option to update-cache.Linus Torvalds2005-04-15
| | | | | | This allows scripts to manually add entries to the cache explicitly. Need to do some way to remove them too, even if the path exists.
* Convert the index file reading/writing to use network byte order.Linus Torvalds2005-04-15
| | | | | | | This allows using a git tree over NFS with different byte order, and makes it possible to just copy a fully populated repository and have the end result immediately usable (needing just a refresh to update the stat information).
* [PATCH] Simplify date handling and make it more reliableDavid Woodhouse2005-04-15
| | | | | | | | | | | | | | | This make all dates be stores as seconds since UTC epoch, with the author's or committer's timezone as auxiliary data so that dates can be pretty-printed in the original timezone later if anyone cares. I left the date parsing in rev-tree.c for backward compatibility but it can be dropped when we change to base64 :) commit-tree now eats RFC2822 dates as AUTHOR_DATE because that's what you're going to want to feed it. Yes, glibc sucks and strptime is a pile of crap. We have to parse it ourselves.
* [PATCH] ls-tree enhancementsJunio C Hamano2005-04-15
| | | | | | | | | | | | | | | | | This adds '-r' (recursive) option and '-z' (NUL terminated) option to ls-tree. I need it so that the merge-trees (formerly known as git-merge.perl) script does not need to create any temporary dircache while merging. It used to use show-files on a temporary dircache to get the list of files in the ancestor tree, and also used the dircache to store the result of its automerge. I probably still need it for the latter reason, but with this patch not for the former reason anymore. It is relative to bb95843a5a0f397270819462812735ee29796fb4 Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Add "merge-tree" helper program. Maybe it's retarded, maybe it's helpful.Linus Torvalds2005-04-14
| | | | It only works one directory level at a time, so lookout..
* Use common "revision.h" header for both fsck and rev-tree.Linus Torvalds2005-04-13
| | | | | | | | It's really a very generic thing: the notion of one sha1 revision referring to another one. "fsck" uses it for all nodes, and "rev-tree" only tracks commit-node relationships, but the code was already the same - now we just make that explicit by moving it to a common header file.
* Fix read-cache.c collission check logic.Linus Torvalds2005-04-13
| | | | | | Not only did it test the #define the wrong way around, but it also leaked file descriptors and VM space. This should fix it.
* Make 'fsck' able to take an arbitrary number of parents on theLinus Torvalds2005-04-13
| | | | | | | | | | | command line. "arbitrary" is a bit wrong, since it is limited by the argument size limit (128kB or so), but let's see if anybody ever cares. Arguably you should prune your tree before you have a few thousand dangling heads in your archive. We can fix it by passing in a file listing if we ever care.
* Make fsck reachability avoid doing unnecessary work forLinus Torvalds2005-04-13
| | | | | | | parents that we reach multiple ways. This doesn't matter right now. It _will_ matter once we have complex revision graphs.
* Make "fsck-cache" use the same revision tracking structure as "rev-tree".Linus Torvalds2005-04-13
| | | | | | | | This makes things a lot more efficient, and makes it trivial to do things like reachability analysis. Add command line flags to tell what the head is, and whether to warn about unreachable objects.
* [PATCH] Change diff-tree output formatPetr Baudis2005-04-13
| | | | | | | | | | Changes diff-tree output format so that fields are separated by tabs instead of spaces (readibility, parseability), and tree entry type is listed along the entry (avoids having to figure that out from the mode in the scripts). This is what my scripts expect. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] diff-tree usagePetr Baudis2005-04-13
| | | | | | Fix diff-tree usage, since it takes -r instead of -R now. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] nsec portabilityPetr Baudis2005-04-13
| | | | | | | | It seems like the nsec portability is limited; in particular, older glibcs (<=2.2.4 at least) don't seem to like it. So access the nsec fields in struct stat only when -DNSEC. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Whitespace FixesIngo Molnar2005-04-13
| | | | | | | | Trivial whitespace fixes. From: Ingo Molnar <mingo@elte.hu> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] No need to clean temp_git_file_* anymoreJunio C Hamano2005-04-13
| | | | | | | | | Ancient cat-file command used to leave temp_git_file_* and there was support to remove them in the clean target of Makefile. I do not think it is needed anymore. From: Junio C Hamano <junkio@cox.net> Signed-off-by: Petr Baudis <pasky@ucw.cz>