summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2005-05-01Add git-write-blob.Libravatar Junio C Hamano1-1/+2
A new command, git-write-blob, is introduced. This registers the contents of any file on the filesystem as a blob in the object database and reports its SHA1 to the standard output. To implement it, the patch promotes index_fd() from a static function in update-cache.c to extern and moves it to a library source, sha1_file.c. This command is used to update git-merge-one-file-script so that it does not smudge the work tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-05-01[PATCH] Add git-local-pull.Libravatar Junio C Hamano1-1/+2
This adds the git-local-pull command as a smaller brother of http-pull and rpull. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-01[PATCH] Add git-apply-patch-script.Libravatar Junio C Hamano1-2/+2
I said: - Stop attempting to be compatible with cg-patch, and drop (mode:XXXXXX) bits from the diff. - Do keep the /dev/null change for created and deleted case. - No "Index:" line, no "Mode change:" line, anywhere in the output. Anything that wants the mode bits and sha1 hash can do things from GIT_EXTERNAL_DIFF mechanism. Maybe document suggested usage better. This adds an example script git-apply-patch-script, that can be used as the GIT_EXTERNAL_DIFF to apply changes between two trees directly on the current work tree, like this: GIT_EXTERNAL_DIFF=git-apply-patch-script git-diff-tree -p <tree> <tree> Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30[PATCH] Split out "pull" from particular methodsLibravatar Daniel Barkalow1-2/+2
The method for deciding what to pull is useful separately from any of the ways of actually fetching the objects. So split out "pull" functionality from http-pull and rpull Signed-off-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-30Make the date parsing accept pretty much any random crap.Libravatar Linus Torvalds1-0/+3
This date parser turns line-noise into a date. Cool.
2005-04-30Rename "show-files" to "ls-files"Libravatar Linus Torvalds1-2/+2
As suggested by Nicolas Pitre
2005-04-30[PATCH] Do date parsing by hand...Libravatar Edgar Toernig1-2/+2
...since everything out there is either strange (libc mktime has issues with timezones) or introduces unnecessary dependencies for people (libcurl). This goes back to the old date parsing, but moves it out into a file of its own, and does the "struct tm" to "seconds since epoch" handling by hand. I grepped through the tz-database and it seems there's one "country" left that has non-60-minute DST: Lord Howe Island. All others dropped that before 1970.
2005-04-29[PATCH] Fix AUTHOR_DATE timezone confusionLibravatar tony.luck@intel.com1-0/+1
This switches git-commit-tree to using curl_getdate() for the AUTHOR_DATE, and thus fixes the problem with "mktime()" parsing dates in the local timezone. It also ends up being more permissive about the format of the date. Signed-off-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-29[PATCH] Makefile: The big git command renaming fallout fix.Libravatar Junio C Hamano1-2/+1
Here is another. This one belongs to a clean-up category. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-29Rename git core commands to be "git-xxxx" to avoid name clashes.Libravatar Linus Torvalds1-38/+44
This also regularizes the make. The source files themselves don't get the "git-" prefix, because that's just inconvenient. So instead we just make the rule that "git-xxxx" depends on "xxxx.c", and do that for all the core programs (ie the old "git-mktag.c" got renamed to just "mktag.c" to match everything else). And "show-diff" got renamed to "git-diff-files" while at it, since that's what it really should be to match the other git-diff-xxx cases.
2005-04-28[PATCH] create tar archives of tree on the flyLibravatar Rene Scharfe1-1/+1
This is an improved version of tar-tree, a streaming archive creator for GIT. The major added feature is blocking; all write(2) calls now have a size of 10240, just as GNU tar (and tape drives) likes them. The buffering overhead does not seem to degrade performance because most files in the repositories I tested this with are smaller than 10KB, so we need fewer system calls. File names are still restricted to 500 bytes and the archive format currently only allows for files up to 8GB. Both restrictions can be lifted if need be with more pax extended headers. The archive format used is the pax interchange format, i.e. POSIX tar format. It can be read by (and created with) GNU tar. If I read the specs correctly tar-tree should now be standards compliant (modulo bugs). Because it streams the archive (think ls-tree merged with cat-file), tar-tree doesn't need to create any temporary files. That makes it quite fast. It accepts tree IDs and commit IDs as first parameter. In the latter case tar-tree tries to get the commit date out of the committer line. Else all files in the archive are time-stamped with the current time. An optional second parameter is used as a path prefix for all files in the archive. Example: $ tar-tree a2755a80f40e5794ddc20e00f781af9d6320fafb \ linux-2.6.12-rc3 | bzip9 -9 > linux-2.6.12-rc3.tar.bz2 Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-28Fix up recent object model cleanupsLibravatar Linus Torvalds1-1/+1
Make sure the Makefile knows about the object header dependencies, and add declarations for tag lookup/parsing.
2005-04-28[PATCH] Add tag header/parser to libraryLibravatar Daniel Barkalow1-1/+1
This adds preliminary support for tags in the library. It doesn't even store the signature, however, let alone provide any way of checking it. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-25[PATCH] Introduce diff-tree-helper.Libravatar Junio C Hamano1-1/+5
This patch introduces a new program, diff-tree-helper. It reads output from diff-cache and diff-tree, and produces a patch file. The diff format customization can be done the same way the show-diff uses; the same external diff interface introduced by the previous patch to drive diff from show-diff is used so this is not surprising. It is used like the following examples: $ diff-cache --cached -z <tree> | diff-tree-helper -z -R paths... $ diff-tree -r -z <tree1> <tree2> | diff-tree-helper -z paths... - As usual, the use of the -z flag is recommended in the script to pass NUL-terminated filenames through the pipe between commands. - The -R flag is used to generate reverse diff. It does not matter for diff-tree case, but it is sometimes useful to get a patch in the desired direction out of diff-cache. - The paths parameters are used to restrict the paths that appears in the output. Again this is useful to use with diff-cache, which, unlike diff-tree, does not take such paths restriction parameters. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-25[PATCH] Split external diff command interface to a separate file.Libravatar Junio C Hamano1-0/+4
With this patch, the non-core'ish part of show-diff command that invokes an external "diff" comand to obtain patches is split into a separate file. The next patch will introduce a new command, diff-tree-helper, which uses this common diff interface to format diff-tree and diff-cache output into a patch form. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-25Add the git-*-script files to the installLibravatar Linus Torvalds1-2/+3
2005-04-25Add "tag" objects that can be used to sign other objects.Libravatar Linus Torvalds1-1/+1
You use "git-mktag" to create them, and fsck-cache knows how to parse them.
2005-04-23Add "rev-list" program that uses the new time-based commit listing.Libravatar Linus Torvalds1-1/+1
This is probably what you'd want to see for "git log".
2005-04-23[PATCH] Various transport programsLibravatar Daniel Barkalow1-2/+11
This patch adds three similar and related programs. http-pull downloads objects from an HTTP server; rpull downloads objects by using ssh and rpush on the other side; and rpush uploads objects by using ssh and rpull on the other side. The algorithm should be sufficient to make the network throughput required depend only on how much content is new, not at all on how much content the repository contains. The combination should enable people to have remote repositories by way of ssh login for authenticated users and HTTP for anonymous access. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-23[PATCH] Simplify building of programsLibravatar Jonas Fonseca1-1/+1
Do not first build .o files when building programs. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-22[PATCH] PPC assembly implementation of SHA1Libravatar Paul Mackerras1-1/+6
Here is a SHA1 implementation with the core written in PPC assembly. On my 2GHz G5, it does 218MB/s, compared to 135MB/s for the openssl version or 45MB/s for the mozilla version. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-21Add support for alternate SHA1 library implementations.Libravatar Linus Torvalds1-11/+11
This one includes the Mozilla SHA1 implementation sent in by Edgar Toernig. It's dual-licenced under MPL-1.1 or GPL, so in the context of git, we obviously use the GPL version. Side note: the Mozilla SHA1 implementation is about twice as fast as the default openssl one on my G5, but the default openssl one has optimized x86 assembly language on x86. So choose wisely.
2005-04-21Split up Makefile library list handling with separate entries forLibravatar Linus Torvalds1-2/+4
zlib and libssl. I'll start giving people choices here..
2005-04-20[PATCH] simplify MakefileLibravatar Andre Noll1-47/+2
Use a generic rule for executables that depend only on the corresponding .o and on $(LIB_FILE). Signed-Off-By: Andre Noll <maan@systemlinux.org> Signed-Off-By: Linus Torvalds <torvalds@osdl.org>
2005-04-20Improve build: add <unistd.h> and use -O2 instead of -O3Libravatar Linus Torvalds1-1/+1
(Nobody should use -O3. It just makes bad inlining decisions).
2005-04-20Do SHA1 hash _before_ compression.Libravatar Linus Torvalds1-1/+5
And add a "convert-cache" program to convert from old-style to new-style.
2005-04-19Add "diff-cache" helper program to compare a tree (or commit) withLibravatar Linus Torvalds1-2/+7
the current cache state and/or working directory. Very useful to see what has changed since the last commit, either in the index file or in the whole working directory. Also very possibly very buggy. Matching the two up is not entirely trivial.
2005-04-19Add stupid "git export" thing, which can export a git archiveLibravatar Linus Torvalds1-1/+5
as a set of patches and commentary. You'd want something like this if you are tracking a git archive in another SCM format. Notably, we want something like that for BK users.
2005-04-18Add "unpack-file" helper that unpacks a sha1 blob into a tmpfile.Libravatar Linus Torvalds1-1/+5
2005-04-18Add more header dependencies.Libravatar Linus Torvalds1-2/+24
Yeah, my Makefiles are always a total disaster. Better this than autotools or some horror like that, though.
2005-04-18Split up read-cache.c into more logical clumps.Libravatar Linus Torvalds1-1/+1
Do the usage and error reporting in "usage.c", and the sha1 file accesses in "sha1_file.c". Small, nice, easily separated parts. Good.
2005-04-18Clean up the Makefile a bit.Libravatar Linus Torvalds1-32/+39
This introduces the concept of git "library" objects that the real programs use, and makes it easier to add such things to a "libgit.a". This will also make it trivial to split the current "read-cache.o" into more aptly named pieces (it does a lot more than just read the index file).
2005-04-18Merge the new object model thing from Daniel BarkalowLibravatar Linus Torvalds1-6/+6
This was a real git merge with conflicts. I'll commit the scripts I used to do the merge next. Not pretty, but it's half-way functional.
2005-04-18[PATCH] Switch implementations of merge-base, port to parsingLibravatar Daniel Barkalow1-2/+2
This switches to my implementation of merge-base, but with the new parsing library. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-18[PATCH] Port fsck-cache to use parsing functionsLibravatar Daniel Barkalow1-2/+2
This ports fsck-cache to use parsing functions. Note that performance could be improved here by only reading each object once, but this requires somewhat more complicated flow control. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-18[PATCH] Port rev-tree to parsing functionsLibravatar Daniel Barkalow1-2/+2
This ports rev-tree to use the parsing functions introduced in the previous patches. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-17Ass a "merge-cache" helper program to execute a merge onLibravatar Linus Torvalds1-1/+4
any unmerged files. This one doesn't actually do the merging, but it makes it easy to script the programs that do using it.
2005-04-17Do a very simple "merge-base" that finds the most recent commonLibravatar Linus Torvalds1-1/+4
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.
2005-04-16Remove "merge-tree.c"Libravatar Linus Torvalds1-4/+1
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-14Add "merge-tree" helper program. Maybe it's retarded, maybe it's helpful.Libravatar Linus Torvalds1-1/+4
It only works one directory level at a time, so lookout..
2005-04-13[PATCH] No need to clean temp_git_file_* anymoreLibravatar Junio C Hamano1-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>
2005-04-13[PATCH] Make nsec checking optionalLibravatar Petr Baudis1-0/+7
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>
2005-04-13[PATCH] SHA1 naive collision checkingLibravatar Petr Baudis1-0/+4
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>
2005-04-13[PATCH] ls-tree for listing treesLibravatar Petr Baudis1-2/+5
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>
2005-04-12Add a "check-files" command, which is useful for scriptingLibravatar Linus Torvalds1-1/+5
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).
2005-04-11Add "show-files" command to show the list of managed (or non-managed) files.Libravatar Linus Torvalds1-1/+4
You want things like this to check in a patch..
2005-04-11Add a "rev-tree" helper, which calculates the revisionLibravatar Linus Torvalds1-1/+4
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.
2005-04-09Add "diff-tree" program to show which files have changed between two trees.Libravatar Linus Torvalds1-1/+4
Very useful for creating diffs efficiently, and in general to see what has changed in the namespace.
2005-04-09Add a "checkout-cache" command which does what the name suggests.Libravatar Linus Torvalds1-1/+5
I'll also eventually change "read-tree" to only update the cache information, instead of doing a checkout of the tree. Much nicer.
2005-04-08Add "-lz" to link line to get in zlib.Libravatar Linus Torvalds1-1/+1
Not all Linux distributions seem to need it (notably not YDL on ppc64), but enough ones obviously do.