AgeCommit message (Collapse)Author
2005-04-17[PATCH] fix for memory leak in write-tree.cBrad Roberts
Fix a memory leak in write-tree.c, not freeing the directory buffer.
2005-04-17[PATCH] Fix +x-related show-diff false positivesPetr Baudis
This fixes show-diff listing all +x files as differring. Signed-off-by: Petr Baudis <> [ 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 <>
2005-04-17[PATCH] Remove unused arguments from index_fd()Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] Better error message from checkout-cache for unmerged files.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17Fix total permission bogosity in "checkout-cache.c".Linus Torvalds
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.
2005-04-17[PATCH] update-cache --remove marks the path merged.Junio C Hamano
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 <> Fixed to do the right thing at the end. Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] show-diff.c: do not include unused header fileJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17Be much more liberal about the file mode bits.Linus Torvalds
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.
2005-04-17[PATCH] Do not run useless show-diff on unmerged paths repeatedly.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] show-diff style fix.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] Rename confusing variable in show-diffJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] show-diff shell safetyJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] show-diff -z option for machine readable output.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-17[PATCH] Optionally tell show-diff to show only named filesJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-16[PATCH] Un unoptimize ls-tree behaviourJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-16Add "--unmerged" flag to "show-files", which does what the name implies.Linus Torvalds
The flag also implies "--stage", since unmerged file information doesn't make sense without the full output.
2005-04-16Remove "merge-tree.c"Linus Torvalds
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.
2005-04-16When inserting a index entry of stage 0, remove all old unmerged entries.Linus Torvalds
This allows you to actually tell git that you've resolved a conflict.
2005-04-16Make 'read-tree' do a few more of the trivial merge cases.Linus Torvalds
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.
2005-04-16[PATCH] Add --stage to show-files for new stage dircache.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-16[PATCH] Byteorder fix for read-tree, new -m semantics version.Junio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-16Make "read-tree" merge the trees it reads by giving them consecutive states.Linus Torvalds
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.
2005-04-16Make cache entry comparison take the new "state" flag into account.Linus Torvalds
This is what allows us to have multiple states of the same file in the index, and what makes it always sort correctly.
2005-04-16write-tree: refuse to write out trees with unmerged index entries.Linus Torvalds
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).
2005-04-16Encode a few extra flags per index entry.Linus Torvalds
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.
2005-04-16Simplify show-diff cache entry name handling.Linus Torvalds
The cache-entry names are all proper strings, no need to worry about their length.
2005-04-16[PATCH] Add '-z' to merge-tree.cJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-15Make "diff-tree" have similar behaviour as "ls-tree" wrt line termination.Linus Torvalds
Default to the human-readable '\n', but make the scriptable "-z" flag do the old '\0' behaviour.
2005-04-15[PATCH] Add "-q" option to show-diff.cJunio C Hamano
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 <> but slightly differently. Signed-off-by: Junio C Hamano <> Signed-off-by: Linus Torvalds <>
2005-04-15[PATCH] Add -z option to show-filesJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-15Add "--cacheinfo" option to update-cache.Linus Torvalds
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.
2005-04-15Convert the index file reading/writing to use network byte order.Linus Torvalds
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).
2005-04-15[PATCH] Simplify date handling and make it more reliableDavid Woodhouse
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.
2005-04-15[PATCH] ls-tree enhancementsJunio C Hamano
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 <> Signed-off-by: Linus Torvalds <>
2005-04-14Add "merge-tree" helper program. Maybe it's retarded, maybe it's helpful.Linus Torvalds
It only works one directory level at a time, so lookout..
2005-04-14Use common "revision.h" header for both fsck and rev-tree.Linus Torvalds
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.
2005-04-14Fix read-cache.c collission check logic.Linus Torvalds
Not only did it test the #define the wrong way around, but it also leaked file descriptors and VM space. This should fix it.
2005-04-13Make 'fsck' able to take an arbitrary number of parents on theLinus Torvalds
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.
2005-04-13Make fsck reachability avoid doing unnecessary work forLinus Torvalds
parents that we reach multiple ways. This doesn't matter right now. It _will_ matter once we have complex revision graphs.
2005-04-13Make "fsck-cache" use the same revision tracking structure as "rev-tree".Linus Torvalds
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.
2005-04-13[PATCH] Change diff-tree output formatPetr Baudis
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 <>
2005-04-13[PATCH] diff-tree usagePetr Baudis
Fix diff-tree usage, since it takes -r instead of -R now. Signed-off-by: Petr Baudis <>
2005-04-13[PATCH] nsec portabilityPetr Baudis
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 <>
2005-04-13[PATCH] Whitespace FixesIngo Molnar
Trivial whitespace fixes. From: Ingo Molnar <> Signed-off-by: Ingo Molnar <> Signed-off-by: Petr Baudis <>
2005-04-13[PATCH] No need to clean temp_git_file_* anymoreJunio C Hamano
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 <> Signed-off-by: Petr Baudis <>
2005-04-13[PATCH] Typofix in git/show-files.Junio C Hamano
Fixes a typo in usage string. From: Junio C Hamano <> Signed-off-by: Petr Baudis <>
2005-04-13[PATCH] Consolidate the error handlingPetr Baudis
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 <>
2005-04-13[PATCH] Make nsec checking optionalPetr Baudis
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 <>
2005-04-13[PATCH] SHA1 naive collision checkingPetr Baudis
When compiled with -DCOLLISION_CHECK, we will check against SHA1 collisions when writing to the object database. From: Christopher Li <> Signed-off-by: Petr Baudis <>
2005-04-13[PATCH] ls-tree for listing treesPetr Baudis
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 <>