summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] Add '-z' to merge-tree.cJunio C Hamano2005-04-151-3/+20
| | | | | | | | 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-151-3/+10
| | | | | 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-151-5/+12
| | | | | | | | | | | | | | | | | 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-151-3/+9
| | | | | | | | 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-151-0/+35
| | | | | | 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-157-60/+64
| | | | | | | 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-152-6/+165
| | | | | | | | | | | | | | | 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-151-18/+90
| | | | | | | | | | | | | | | | | 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-142-1/+132
| | | | 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-133-202/+121
| | | | | | | | 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-131-11/+28
| | | | | | 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-131-14/+19
| | | | | | | | | | | 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-131-0/+3
| | | | | | | 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-131-76/+133
| | | | | | | | 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-131-2/+6
| | | | | | | | | | 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-131-1/+1
| | | | | | 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-131-0/+4
| | | | | | | | 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-137-9/+9
| | | | | | | | 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-131-1/+1
| | | | | | | | | 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>
* [PATCH] Typofix in git/show-files.Junio C Hamano2005-04-131-1/+1
| | | | | | | Fixes a typo in usage string. From: Junio C Hamano <junkio@cox.net> Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Consolidate the error handlingPetr Baudis2005-04-1313-69/+77
| | | | | | | Now there is error() for "library" errors and die() for fatal "application" errors. usage() is now used strictly only for usage errors. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Make nsec checking optionalPetr Baudis2005-04-132-4/+20
| | | | | | | | | The nsec field of ctime/mtime is now checked only with -DNSEC defined during compilation. nsec acts broken since it is stored in the icache but apparently just gets to zero when flushed to filesystem not supporting it (e.g. ext3), creating illusions of false changes. At least that's my impression. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] SHA1 naive collision checkingPetr Baudis2005-04-132-2/+23
| | | | | | | | When compiled with -DCOLLISION_CHECK, we will check against SHA1 collisions when writing to the object database. From: Christopher Li <chrislgit@chrisli.org> Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] ls-tree for listing treesPetr Baudis2005-04-132-2/+58
| | | | | | | | | | ls-tree tool provides just a way to export the binary tree objects to a usable text format. This is bound to be useful in variety of scripts, although none of those I have currently uses it. But e.g. the simple script I've sent to HPA for purging the object database uses it. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Correct show-diff output for deleted filesPetr Baudis2005-04-131-1/+1
| | | | | | | | My convention is that contrary to files trimmed to zero size, deleted files always go to /dev/null. This patch turns show-diff to abide this. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Silent flag for show-diffPetr Baudis2005-04-131-1/+13
| | | | | | | | This patch adds a -s flag for show-diff, which will surpress the actual diffing. This is useful for my scripts when they just want to see what needs to be updated in the cache. Signed-off-by: Petr Baudis <pasky@ucw.cz>
* [PATCH] Fix a crash when doing rev-treePetr Baudis2005-04-121-6/+6
| | | | | | | In parse_commit(), free(buffer) is fed a bogus pointer. Signed-off-by: Petr Baudis <pasky@ucw.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Make "checkout-cache" silently skip up-to-date files.Linus Torvalds2005-04-121-5/+7
| | | | | | It used to always overwrite them if forced. Now it just realizes that they are already ok, and don't need to be touched.
* Make "rev-tree" able to read its own output again from the cache.Linus Torvalds2005-04-121-7/+74
| | | | | | | | | | Also, add "date" information to the output so that you can do something like this: rev-tree `cat .git/HEAD` | sort -nr | cut -d' ' -f2 | while read i; do cat-file commit $i; done which basically becomes a "git log" (aka "git changes") where things are sorted by time.
* [PATCH] rev-tree support for "in X but not in Y".David Woodhouse2005-04-121-0/+8
| | | | | | | | | | | | | | | | To do the automated commit-mailing I need to be able to answer the question "which commits are here today but weren't yesterday"... i.e. given two commit-ids $HEAD and $YESTERDAY I want to be able to do: rev-tree $HEAD ^$YESTERDAY to list those commits which are in the tree now but weren't ancestors of yesterday's head. Yes, I could probably do this with rev-tree $HEAD $YESTERDAY | egrep -v ^[a-z0-9]*:3 but I prefer not to.
* [PATCH] show-diff show deleted files as diff as well.Christopher Li2005-04-121-4/+45
| | | | | | | | | | | | | | | The ideas is that using the show-diff to generate the patch including deleted and new file (in the next patch). So we don't have to do the temp new file diff dance on the script. The cache index now contain enough information to generate the whole patch. So the GIT SCM don't need separate command for check out file to edit or delete. Just do the edit and remove and GIT will generate the correct patch. It still require tell GIT to add new files.
* Remove the annoying "ok" printout from show-diff.Linus Torvalds2005-04-121-3/+1
| | | | | | It used to be useful before I wrote "show-files", so that show-diff would also tell what the cached files were. Now it's just annoying.
* Add a "check-files" command, which is useful for scriptingLinus Torvalds2005-04-122-1/+52
| | | | | | | patches. In particular, it verifies that all the listed files are up-to-date in the cache (or don't exist and are ready to be added).
* Add "show-files" command to show the list of managed (or non-managed) files.Linus Torvalds2005-04-112-1/+168
| | | | You want things like this to check in a patch..
* Allow zero-sized files to be checked in.Linus Torvalds2005-04-111-4/+8
| | | | | | The kernel may not want it, but others probably do. Noted (again) by Junio Hamano.
* Make the rev-tree output more regular. This is the lastLinus Torvalds2005-04-111-2/+2
| | | | | | | | | | | | change. Promise. It now always outputs all the revisions as <sha1>:<reachability>, where the reachability is the bitmask of how that revision was reachable from the commits in the argument list. Trivially, if there is only one commit, the reachability will always be (1 << 0) == 1 for all reachable revisions, and there won't be any edges (so the "--edges" flag only makes sense with multiple commit keys).
* Make "rev-tree" capable of showing the difference in reachability between twoLinus Torvalds2005-04-111-13/+99
| | | | | | | or more commit points. This is important both to know what the difference between two commit points is, but also to figure out where to try to merge from.
* Make "rev-tree" more efficient and more useful.Linus Torvalds2005-04-111-44/+68
| | | | | | | Slight change of output format: it now lists all parents on the same line. This allows it to work on initial commits too (which have no parents), and also makes the output format a lot more intuitive.
* Rename ".dircache" directory to ".git"Linus Torvalds2005-04-116-12/+12
| | | | I started out calling the tool "dircache". That's clearly moronic.
* Fix stale index.lock file removal using "atexit()".Linus Torvalds2005-04-112-39/+47
| | | | Problem noted by Randy Dunlap.
* Add a "rev-tree" helper, which calculates the revisionLinus Torvalds2005-04-112-1/+142
| | | | | | | | tree graph. It's quite fast when the commit-objects are cached, but since it has to walk every single commit-object, it also allows you to cache an old state and just add on top of that.
* Fix "usage()" to do the missing line termination.Linus Torvalds2005-04-111-1/+3
| | | | It got broken when I changed it to use stdarg.
* Fix "update-cache" not fixing up the size field as appropriate.Linus Torvalds2005-04-111-5/+6
| | | | | The size field isn't in the tree information, so we need to update it if the sha1 matches.
* Make the default directory permissions more lax.Linus Torvalds2005-04-112-4/+4
| | | | | | After all, if you want to not allow others to read your stuff, set your "umask" appropriately or make sure the parent directories aren't readable/executable.
* Add a COPYING notice, making it explicit that the license is GPLv2.Linus Torvalds2005-04-111-0/+361
| | | | | | Let's bite the v3 bullet when it comes, although if people want to, they can just state "or later at discretion of Linus" in their copyright messages.
* Make "update-cache --refresh" do what it really should do: justLinus Torvalds2005-04-111-19/+99
| | | | | | | | | refresh the "stat" information. We need this after having done a "read-tree", for example, when the stat information does not match the checked-out tree, and we want to start getting efficient cache matching against the parts of the tree that are already up-to-date.
* Fix up commit-tree/diff-tree user interface issues.Linus Torvalds2005-04-112-4/+4
| | | | | | | No, this doesn't make them easy to use, but makes diff-tree use the "-r" flag for "recursive" (not "-R") and makes commit-tree use AUTHOR_xxx environment flags (not COMMITTER_xxx) to match what it actually does.
* Oops. Fix bad initialization of the "seen" array, causing us to notLinus Torvalds2005-04-101-1/+1
| | | | | | | | properly clear the reference count at init time. It happened to work for me by pure luck. Until it broke, and my unreferenced commit suddenly looked referenced again. Fixed.
* Oops, the actual 'printf' for missing objects was missing.Linus Torvalds2005-04-101-0/+1
| | | | | | | | | | | Which made fsck very quiet about objects it hadn't found. So add it. We'll need to make things like these optional, because it's perfectly ok to have partial history if you don't want it, and don't want to go backwards. But for development, it's best to always complain about missing sha1 object files that are referenced from somewhere else.
* Add connectivity tracking to fsck.Linus Torvalds2005-04-101-4/+100
| | | | | | | | | | | This shows that I've lost track of one commit already. Most likely because I forgot to update the .dircache/HEAD file when doing a commit, so that the next commit referenced not the top-of-tree, but the one older commit. Having dangling commits is fine (in fact, you should always have at least _one_ dangling commit in the top-of-tree). But it's good to know about them.