Commit Graph

67 Commits

Author SHA1 Message Date
Linus Torvalds
a3a65234db Make "read-tree" know how to do a "1-way merge".
This one just reads one tree, but picks up any matching stat information
from the old index.
2005-04-19 11:41:18 -07:00
Linus Torvalds
ca016f0e4e Make "read-tree" take the 'stat' information for a merge result from the
old index state if the result matches.

This leaves the stat information in the result tree for any trivial
merges, which is just the way we like it.
2005-04-19 11:16:12 -07:00
Linus Torvalds
e44794706e Be much more liberal about the file mode bits.
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-16 22:26:31 -07:00
Linus Torvalds
43f91266a4 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.
2005-04-16 09:11:49 -07:00
Linus Torvalds
d99082e0e3 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.
2005-04-15 22:53:45 -07:00
Linus Torvalds
f5cabd13d8 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.
2005-04-15 21:45:38 -07:00
Linus Torvalds
ccc4feb579 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).
2005-04-15 10:44:27 -07:00
Petr Baudis
2de381f919 [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>
2005-04-13 02:28:48 -07:00
Linus Torvalds
4bb04f2190 Rename ".dircache" directory to ".git"
I started out calling the tool "dircache". That's clearly moronic.
2005-04-11 15:47:57 -07:00
Linus Torvalds
9614b8dcf8 Fix stale index.lock file removal using "atexit()".
Problem noted by Randy Dunlap.
2005-04-11 15:39:26 -07:00
Linus Torvalds
121481abf8 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.
2005-04-10 11:32:54 -07:00
Linus Torvalds
f768846e34 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.
2005-04-09 15:36:41 -07:00
Linus Torvalds
83adac3c57 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".
2005-04-09 12:11:25 -07:00
Linus Torvalds
19b2860cba 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 ;)
2005-04-08 09:59:28 -07:00
Linus Torvalds
e497ea2a9b 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.
2005-04-07 21:03:28 -07:00
Linus Torvalds
8bc9a0c769 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.
2005-04-07 15:16:10 -07:00
Linus Torvalds
e83c516331 Initial revision of "git", the information manager from hell 2005-04-07 15:13:13 -07:00