gitweb.git
When inserting a index entry of stage 0, remove all... Linus Torvalds Sat, 16 Apr 2005 19:05:45 +0000 (12:05 -0700)

When inserting a index entry of stage 0, remove all old unmerged entries.

This allows you to actually tell git that you've resolved a conflict.

Make 'read-tree' do a few more of the trivial merge... Linus Torvalds Sat, 16 Apr 2005 16:11:49 +0000 (09:11 -0700)

Make 'read-tree' do a few more of the trivial merge cases.

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 Hamano Sat, 16 Apr 2005 15:33:23 +0000 (08:33 -0700)

[PATCH] Add --stage to show-files for new stage dircache.

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... Junio C Hamano Sat, 16 Apr 2005 15:30:20 +0000 (08:30 -0700)

[PATCH] Byteorder fix for read-tree, new -m semantics version.

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... Linus Torvalds Sat, 16 Apr 2005 05:53:45 +0000 (22:53 -0700)

Make "read-tree" merge the trees it reads by giving them consecutive states.

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... Linus Torvalds Sat, 16 Apr 2005 05:51:44 +0000 (22:51 -0700)

Make cache entry comparison take the new "state" flag into account.

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... Linus Torvalds Sat, 16 Apr 2005 05:04:54 +0000 (22:04 -0700)

write-tree: refuse to write out trees with unmerged index entries.

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 Torvalds Sat, 16 Apr 2005 04:45:38 +0000 (21:45 -0700)

Encode a few extra flags per index entry.

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 Torvalds Sat, 16 Apr 2005 04:42:34 +0000 (21:42 -0700)

Simplify show-diff cache entry name handling.

The cache-entry names are all proper strings, no need to worry about
their length.

[PATCH] Add '-z' to merge-tree.cJunio C Hamano Sat, 16 Apr 2005 02:20:42 +0000 (19:20 -0700)

[PATCH] Add '-z' to merge-tree.c

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... Linus Torvalds Fri, 15 Apr 2005 22:11:57 +0000 (15:11 -0700)

Make "diff-tree" have similar behaviour as "ls-tree" wrt line termination.

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 Hamano Fri, 15 Apr 2005 22:08:09 +0000 (15:08 -0700)

[PATCH] Add "-q" option to show-diff.c

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 Hamano Fri, 15 Apr 2005 18:11:01 +0000 (11:11 -0700)

[PATCH] Add -z option to show-files

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 Torvalds Fri, 15 Apr 2005 18:08:33 +0000 (11:08 -0700)

Add "--cacheinfo" option to update-cache.

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... Linus Torvalds Fri, 15 Apr 2005 17:44:27 +0000 (10:44 -0700)

Convert the index file reading/writing to use network byte order.

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 Woodhouse Fri, 15 Apr 2005 15:39:57 +0000 (08:39 -0700)

[PATCH] Simplify date handling and make it more reliable

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 Hamano Fri, 15 Apr 2005 15:37:05 +0000 (08:37 -0700)

[PATCH] ls-tree enhancements

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... Linus Torvalds Thu, 14 Apr 2005 08:37:23 +0000 (01:37 -0700)

Add "merge-tree" helper program. Maybe it's retarded, maybe it's helpful.

It only works one directory level at a time, so lookout..

Use common "revision.h" header for both fsck and rev... Linus Torvalds Thu, 14 Apr 2005 04:37:59 +0000 (21:37 -0700)

Use common "revision.h" header for both fsck and rev-tree.

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 Torvalds Thu, 14 Apr 2005 00:47:12 +0000 (17:47 -0700)

Fix read-cache.c collission check logic.

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... Linus Torvalds Wed, 13 Apr 2005 23:42:09 +0000 (16:42 -0700)

Make 'fsck' able to take an arbitrary number of parents on the
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 Torvalds Wed, 13 Apr 2005 19:35:08 +0000 (12:35 -0700)

Make fsck reachability avoid doing unnecessary work for
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 struct... Linus Torvalds Wed, 13 Apr 2005 16:57:30 +0000 (09:57 -0700)

Make "fsck-cache" use the same revision tracking structure as "rev-tree".

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 Baudis Wed, 13 Apr 2005 09:42:04 +0000 (02:42 -0700)

[PATCH] Change diff-tree output format

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 Baudis Wed, 13 Apr 2005 09:39:33 +0000 (02:39 -0700)

[PATCH] diff-tree usage

Fix diff-tree usage, since it takes -r instead of -R now.

Signed-off-by: Petr Baudis <pasky@ucw.cz>

[PATCH] nsec portabilityPetr Baudis Wed, 13 Apr 2005 09:38:44 +0000 (02:38 -0700)

[PATCH] nsec portability

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 Molnar Tue, 12 Apr 2005 18:36:26 +0000 (11:36 -0700)

[PATCH] Whitespace Fixes

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 Hamano Tue, 12 Apr 2005 15:08:12 +0000 (08:08 -0700)

[PATCH] No need to clean temp_git_file_* anymore

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 Hamano Tue, 12 Apr 2005 15:04:17 +0000 (08:04 -0700)

[PATCH] Typofix in git/show-files.

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 Baudis Wed, 13 Apr 2005 09:28:48 +0000 (02:28 -0700)

[PATCH] Consolidate the error handling

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 Baudis Wed, 13 Apr 2005 09:20:38 +0000 (02:20 -0700)

[PATCH] Make nsec checking optional

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 Baudis Wed, 13 Apr 2005 09:14:06 +0000 (02:14 -0700)

[PATCH] SHA1 naive collision checking

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 Baudis Wed, 13 Apr 2005 09:02:34 +0000 (02:02 -0700)

[PATCH] ls-tree for listing trees

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 Baudis Wed, 13 Apr 2005 08:46:35 +0000 (01:46 -0700)

[PATCH] Correct show-diff output for deleted files

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 Baudis Wed, 13 Apr 2005 08:40:09 +0000 (01:40 -0700)

[PATCH] Silent flag for show-diff

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 Baudis Tue, 12 Apr 2005 21:37:42 +0000 (14:37 -0700)

[PATCH] Fix a crash when doing rev-tree

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 Torvalds Tue, 12 Apr 2005 21:17:28 +0000 (14:17 -0700)

Make "checkout-cache" silently skip up-to-date files.

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... Linus Torvalds Tue, 12 Apr 2005 20:40:03 +0000 (13:40 -0700)

Make "rev-tree" able to read its own output again from the cache.

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 Woodhouse Tue, 12 Apr 2005 19:35:11 +0000 (12:35 -0700)

[PATCH] rev-tree support for "in X but not in Y".

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 Li Tue, 12 Apr 2005 09:04:44 +0000 (02:04 -0700)

[PATCH] show-diff show deleted files as diff as well.

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 Torvalds Tue, 12 Apr 2005 09:01:12 +0000 (02:01 -0700)

Remove the annoying "ok" printout from show-diff.

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 Torvalds Tue, 12 Apr 2005 07:23:14 +0000 (00:23 -0700)

Add a "check-files" command, which is useful for scripting
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... Linus Torvalds Tue, 12 Apr 2005 01:55:38 +0000 (18:55 -0700)

Add "show-files" command to show the list of managed (or non-managed) files.

You want things like this to check in a patch..

Allow zero-sized files to be checked in.Linus Torvalds Tue, 12 Apr 2005 01:02:00 +0000 (18:02 -0700)

Allow zero-sized files to be checked in.

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... Linus Torvalds Tue, 12 Apr 2005 00:40:58 +0000 (17:40 -0700)

Make the rev-tree output more regular. This is the last
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... Linus Torvalds Tue, 12 Apr 2005 00:23:58 +0000 (17:23 -0700)

Make "rev-tree" capable of showing the difference in reachability between two
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 Torvalds Mon, 11 Apr 2005 23:42:13 +0000 (16:42 -0700)

Make "rev-tree" more efficient and more useful.

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 Torvalds Mon, 11 Apr 2005 22:47:57 +0000 (15:47 -0700)

Rename ".dircache" directory to ".git"

I started out calling the tool "dircache". That's clearly moronic.

Fix stale index.lock file removal using "atexit()".Linus Torvalds Mon, 11 Apr 2005 22:39:26 +0000 (15:39 -0700)

Fix stale index.lock file removal using "atexit()".

Problem noted by Randy Dunlap.

Add a "rev-tree" helper, which calculates the revisionLinus Torvalds Mon, 11 Apr 2005 20:55:10 +0000 (13:55 -0700)

Add a "rev-tree" helper, which calculates the revision
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 Torvalds Mon, 11 Apr 2005 20:53:49 +0000 (13:53 -0700)

Fix "usage()" to do the missing line termination.

It got broken when I changed it to use stdarg.

Fix "update-cache" not fixing up the size field as... Linus Torvalds Mon, 11 Apr 2005 18:33:58 +0000 (11:33 -0700)

Fix "update-cache" not fixing up the size field as appropriate.

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 Torvalds Mon, 11 Apr 2005 17:24:41 +0000 (10:24 -0700)

Make the default directory permissions more lax.

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 licen... Linus Torvalds Mon, 11 Apr 2005 17:18:16 +0000 (10:18 -0700)

Add a COPYING notice, making it explicit that the license is GPLv2.

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... Linus Torvalds Mon, 11 Apr 2005 16:39:21 +0000 (09:39 -0700)

Make "update-cache --refresh" do what it really should do: just
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 Torvalds Mon, 11 Apr 2005 15:37:17 +0000 (08:37 -0700)

Fix up commit-tree/diff-tree user interface issues.

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, causi... Linus Torvalds Mon, 11 Apr 2005 06:33:52 +0000 (23:33 -0700)

Oops. Fix bad initialization of the "seen" array, causing us to not
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 Torvalds Mon, 11 Apr 2005 06:22:59 +0000 (23:22 -0700)

Oops, the actual 'printf' for missing objects was missing.

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 Torvalds Mon, 11 Apr 2005 06:13:09 +0000 (23:13 -0700)

Add connectivity tracking to fsck.

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.

Fix off-by-one error in removal of cache entry.Linus Torvalds Mon, 11 Apr 2005 05:06:50 +0000 (22:06 -0700)

Fix off-by-one error in removal of cache entry.

Also make the return value of "cache_name_pos()" be sane: positive
or zero if we found it (it's the index into the cache array), and
"-pos-1" to indicate where it should go if we didn't.

Fix diff-tree recursion.Linus Torvalds Mon, 11 Apr 2005 04:49:26 +0000 (21:49 -0700)

Fix diff-tree recursion.

And, perhaps more importantly, fix the fact that if a filename changed from a
directory to a file (or vice versa), we must consider it a delete and an add,
not a "filechange".

Simplify "diff-tree" output, and only keep track of... Linus Torvalds Sun, 10 Apr 2005 22:08:02 +0000 (15:08 -0700)

Simplify "diff-tree" output, and only keep track of one single name-base.

During original development I had different name-bases for source and
destination, so that I could make the output show how it got removed
from "tree a" and added to "tree b", but we don't want that. We only
do recursive diffs on anything where the bases are exactly the same,
so we might as well just work with a single base.

Also, make the output for "changed" be a single line, since people
hated the separate '<' / '>' format. They were right. It sucked.

Add "-R" flag to "diff-tree", so that it will recursive... Linus Torvalds Sun, 10 Apr 2005 21:03:58 +0000 (14:03 -0700)

Add "-R" flag to "diff-tree", so that it will recursively traverse a tree of trees
as it diffs them.

This makes diff-tree usable again in the new world order.

Make "update-cache" a bit friendlier to use (and harder... Linus Torvalds Sun, 10 Apr 2005 18:32:54 +0000 (11:32 -0700)

Make "update-cache" a bit friendlier to use (and harder to mis-use).

It now requires the "--add" flag before you add any new files, and
a "--remove" file if you want to mark files for removal. And giving
it the "--refresh" flag makes it just update all the files that it
already knows about.

This implements the new "recursive tree" write-tree.Linus Torvalds Sun, 10 Apr 2005 00:09:34 +0000 (17:09 -0700)

This implements the new "recursive tree" write-tree.

It's got some debugging printouts etc still in it, but testing on the
kernel seems to show that it does indeed fix the issue with huge tree
files for each commit.

Make fsck-cache warn about old-style tree objects that... Linus Torvalds Sat, 9 Apr 2005 22:47:03 +0000 (15:47 -0700)

Make fsck-cache warn about old-style tree objects that have full
pathnames in them. We're migrating away from that.

This will cause tons of warnings for the current "sparse" archive,
but hell, better now than later.

Teach "fsck" and "read-tree" about recursive tree-nodes.Linus Torvalds Sat, 9 Apr 2005 22:36:41 +0000 (15:36 -0700)

Teach "fsck" and "read-tree" about recursive tree-nodes.

This is totally untested, since we can't actually _write_ things that
way yet, but I'll get to that next, I hope. That should fix the
huge wasted space for kernel-sized tree objects.

Make "fsck-cache" print out all the root commits it... Linus Torvalds Sat, 9 Apr 2005 20:02:30 +0000 (13:02 -0700)

Make "fsck-cache" print out all the root commits it finds.

Once I do the reference tracking, I'll also make it print out all the
HEAD commits it finds, which is even more interesting.

Add "diff-tree" program to show which files have change... Linus Torvalds Sat, 9 Apr 2005 20:00:54 +0000 (13:00 -0700)

Add "diff-tree" program to show which files have changed between two trees.

Very useful for creating diffs efficiently, and in general to see what has
changed in the namespace.

Export "cache_name_compare()" helper function.Linus Torvalds Sat, 9 Apr 2005 19:59:11 +0000 (12:59 -0700)

Export "cache_name_compare()" helper function.

The "diff-tree" program needs it.

Make "read-tree" read the tree into the current directo... Linus Torvalds Sat, 9 Apr 2005 19:11:25 +0000 (12:11 -0700)

Make "read-tree" read the tree into the current directory cache.

It will no longer update the actual working directory, just the
cache. To update the working directory, you need to use "checkout-cache".

Make "write_cache()" and friends available as generic... Linus Torvalds Sat, 9 Apr 2005 19:09:27 +0000 (12:09 -0700)

Make "write_cache()" and friends available as generic routines.

This is needed for the change to make "read-tree" just read into the
cache (and then you do a "checkout-cache" to update your current dir
contents).

Fix "checkout-cache.c" mis-use of read_sha1_file()... Linus Torvalds Sat, 9 Apr 2005 18:24:41 +0000 (11:24 -0700)

Fix "checkout-cache.c" mis-use of read_sha1_file() interface.

It's supposed to test the returned file type, not think that read_sha1_file()
tests it. Confusion from "cat-file" command line usage.

Fix up "checkout-cache" a bitLinus Torvalds Sat, 9 Apr 2005 16:59:44 +0000 (09:59 -0700)

Fix up "checkout-cache" a bit

Make the warnings have newlines, and don't stop "checkout-cache -a"
just because a file already exists.

Add a "checkout-cache" command which does what the... Linus Torvalds Sat, 9 Apr 2005 16:53:05 +0000 (09:53 -0700)

Add a "checkout-cache" command which does what the name suggests.

I'll also eventually change "read-tree" to only update the cache
information, instead of doing a checkout of the tree. Much nicer.

Make the cache stat information comparator public.Linus Torvalds Sat, 9 Apr 2005 16:48:20 +0000 (09:48 -0700)

Make the cache stat information comparator public.

Like the cache filename finder, it's a generically useful function,
rather than something specific to the current "show-diff" thing.

Make "cache_name_pos()" available to others.Linus Torvalds Sat, 9 Apr 2005 16:26:55 +0000 (09:26 -0700)

Make "cache_name_pos()" available to others.

It finds the cache entry position for a given name, and is
generally useful. Sure, everybody can just scan the active
cache array, but since it's sorted, you actually want to
search it with a binary search, so let's not duplicate that
logic all over the place.

Fix missing return values and some error tests for... Linus Torvalds Sat, 9 Apr 2005 07:25:22 +0000 (00:25 -0700)

Fix missing return values and some error tests for empty index files

Patches from Dave Jones and Ingo Molnar, but since I don't have any
infrastructure in place to use the old patch applicator scripts I
am trying to build up, I ended up fixing the thing by hand instead.

Credit where credit is due, though. Nice to see that people are
taking a look at the project even in this early stage.

Make fsck-cache start parsing the object types, and... Linus Torvalds Sat, 9 Apr 2005 00:11:14 +0000 (17:11 -0700)

Make fsck-cache start parsing the object types, and checking their
internal format.

This doesn't yet check the reachability information, but we're getting
there.. Slowly.

Add "-lz" to link line to get in zlib.Linus Torvalds Fri, 8 Apr 2005 22:31:19 +0000 (15:31 -0700)

Add "-lz" to link line to get in zlib.

Not all Linux distributions seem to need it (notably not YDL on ppc64), but
enough ones obviously do.

Add new fsck-cache to Makefile.Linus Torvalds Fri, 8 Apr 2005 22:04:51 +0000 (15:04 -0700)

Add new fsck-cache to Makefile.

This is what happens when there are no nice tools to tell you to do things
properly.

Add first cut at "fsck-cache" that validates the SHA1... Linus Torvalds Fri, 8 Apr 2005 22:02:42 +0000 (15:02 -0700)

Add first cut at "fsck-cache" that validates the SHA1 object store.

It doesn't complain about mine. But it also doesn't yet check for
inter-object reachability etc.

Add "check_sha1_signature()" helper functionLinus Torvalds Fri, 8 Apr 2005 22:01:15 +0000 (15:01 -0700)

Add "check_sha1_signature()" helper function

And fix up header declarations.

Factor out "read_sha1_file" into mapping/inflating... Linus Torvalds Fri, 8 Apr 2005 21:42:29 +0000 (14:42 -0700)

Factor out "read_sha1_file" into mapping/inflating/unmapping.

This allows us to also actually check the sha1 hash using these
routines. Needed for the "fsck" thing.

Use "-Wall -O2" for the compiler to get more warnings.Linus Torvalds Fri, 8 Apr 2005 16:59:28 +0000 (09:59 -0700)

Use "-Wall -O2" for the compiler to get more warnings.

And fix up the warnings that it pointed out. Let's keep the tree
clean from early on.

Not that the code is very beautiful anyway ;)

Make "cat-file" output the file contents to stdout.Linus Torvalds Fri, 8 Apr 2005 16:16:38 +0000 (09:16 -0700)

Make "cat-file" output the file contents to stdout.

New syntax: "cat-file -t <sha1>" shows the tag, while "cat-file <tag> <sha1>"
outputs the file contents after checking that the supplied tag matches.

Make read-tree actually unpack the whole tree.Linus Torvalds Fri, 8 Apr 2005 04:03:28 +0000 (21:03 -0700)

Make read-tree actually unpack the whole tree.

I needed this to make a "sparse" archive conversion from my old
BitKeeper tree data. The scripts to do the conversion are just
incredibly ugly, but they seem to validate the notion that you
can actually use this silly 'git' thing to save your history in.

Add copyright notices.Linus Torvalds Thu, 7 Apr 2005 22:16:10 +0000 (15:16 -0700)

Add copyright notices.

The tool interface sucks (especially "committing" information, which is just
me doing everything by hand from the command line), but I think this is in
theory actually a viable way of describing the world. So copyright it.

Initial revision of "git", the information manager... Linus Torvalds Thu, 7 Apr 2005 22:13:13 +0000 (15:13 -0700)

Initial revision of "git", the information manager from hell