summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)AuthorFilesLines
2006-06-18Merge branch 'yl/build'Libravatar Junio C Hamano1-8/+20
* yl/build: auto-detect changed prefix and/or changed build flags
2006-06-18Remove "refs" field from "struct object"Libravatar Linus Torvalds1-1/+1
This shrinks "struct object" to the absolutely minimal size possible. It now contains /only/ the object flags and the SHA1 hash name of the object. The "refs" field, which is really needed only for fsck, is maintained in a separate hashed lookup-table, allowing all normal users to totally ignore it. This helps memory usage, although not as much as I hoped: it looks like the allocation overhead of malloc (and the alignment constraints in particular) means that while the structure size shrinks, the actual allocation overhead mostly does not. [ That said: memory usage is actually down, but not as much as it should be: I suspect just one of the object types actually ended up shrinking its effective allocation size. To get to the next level, we probably need specialized allocators that don't pad the allocation more than necessary. ] The separation makes for some code cleanup, though, and makes the ref tracking that fsck wants a clearly separate thing. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-18Make release tarballs friendlier to older tar versionsLibravatar Rene Scharfe1-1/+1
git-tar-tree adds an extended pax header to archives if its first parameter points to a commit. It confuses older tars and isn't very useful in the case of git anyway, so stop doing it. Idea: Junio, implementation: Junio. I just wrote it up. :-) Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-17auto-detect changed prefix and/or changed build flagsLibravatar Yakov Lerner1-8/+20
Detect changed prefix and/or changed build flags in the middle of the build (or between 'make' and 'make install'), and if change is detected, make sure all objects are compiled with same build flags and same prefix, thus avoiding inconsistent/broken build. [jc: removed otherwise unnecessary Makefile target to test the change this patch introduces. ] Signed-off-by: Yakov Lerner <iler.ml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-10Built-in git-get-tar-commit-idLibravatar Rene Scharfe1-2/+2
By being an internal command git-get-commit-id can make use of struct ustar_header and other stuff and stops wasting precious disk space. Note: I recycled one of the two "tar-tree" entries instead of splitting that cleanup into a separate patch. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-07make clean: remove dist-doc targets.Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-06Make index file locking code reusable to others.Libravatar Junio C Hamano1-1/+1
The framework to create lockfiles that are removed at exit is first used to reliably write the index file, but it is applicable to other things, so stop calling it "cache_file". This also rewords a few remaining error message that called the index file "cache file". Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-06HTTP cleanupLibravatar Junio C Hamano1-1/+2
This ifdef's out more functions that are not used while !USE_MULTI in http code. Also the dependency of http related objects on http.h header file was missing in the Makefile. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-03Builtin git-rev-parse.Libravatar Christian Couder1-4/+3
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-28Merge branch 'jc/cache-tree'Libravatar Junio C Hamano1-1/+4
* jc/cache-tree: (26 commits) builtin-rm: squelch compiler warnings. git-write-tree writes garbage on sparc64 Fix crash when reading the empty tree fsck-objects: do not segfault on missing tree in cache-tree cache-tree: a bit more debugging support. read-tree: invalidate cache-tree entry when a new index entry is added. Fix test-dump-cache-tree in one-tree disappeared case. fsck-objects: mark objects reachable from cache-tree cache-tree: replace a sscanf() by two strtol() calls cache-tree.c: typefix test-dump-cache-tree: validate the cached data as well. cache_tree_update: give an option to update cache-tree only. read-tree: teach 1-way merege and plain read to prime cache-tree. read-tree: teach 1 and 2 way merges about cache-tree. update-index: when --unresolve, smudge the relevant cache-tree entries. test-dump-cache-tree: report number of subtrees. cache-tree: sort the subtree entries. Teach fsck-objects about cache-tree. index: make the index file format extensible. cache-tree: protect against "git prune". ... Conflicts: Makefile, builtin.h, git.c: resolved the same way as in next.
2006-05-25Don't write directly to a make target ($@).Libravatar Jim Meyering1-14/+20
Otherwise, if make is suspended, or killed with prejudice, or if the system crashes, you could be left with an up-to-date, yet corrupt, generated file. I left off the `clean' addition, because I believe "make clean" should not remove wildcard patterns like "*+", on the off-chance that someone uses names like that for files they care about. Besides, in practice, those temporary files are left behind so rarely that they're not a bother, and they're removed again as part of the next build. [jc: sign-off?] Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-25Documentation/Makefile: remove extra /Libravatar Martin Waitz1-1/+1
As both DESTDIR and the prefix are supposed to be absolute pathnames they can simply be concatenated without an extra / (like in the main Makefile). The extra slash may even break installation on Windows. [jc: adjusted an earlier workaround for this problem in the dist-doc target in the main Makefile as well. ] Signed-off-by: Martin Waitz <tali@admingilde.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-24Builtin git-cat-fileLibravatar Timo Hirvonen1-3/+3
Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-24Merge branch 'js/fmt-patch'Libravatar Junio C Hamano1-2/+2
This makes "git format-patch" a built-in. * js/fmt-patch: git-rebase: use canonical A..B syntax to format-patch git-format-patch: now built-in. fmt-patch: Support --attach fmt-patch: understand old <his> notation Teach fmt-patch about --keep-subject Teach fmt-patch about --numbered fmt-patch: implement -o <dir> fmt-patch: output file names to stdout Teach fmt-patch to write individual files. Use RFC2822 dates from "git fmt-patch". git-fmt-patch: thinkofix to show [PATCH] properly. rename internal format-patch wip Minor tweak on subject line in --pretty=email Tentative built-in format-patch.
2006-05-24Merge branch 'jc/builtin-n-tar-tree'Libravatar Junio C Hamano1-11/+18
This pulls in "make many commands built-in" branches. * jc/builtin-n-tar-tree: built-in tar-tree and remote tar-tree Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree. Builtin git-show-branch. Builtin git-apply. Builtin git-commit-tree. Builtin git-read-tree. Builtin git-tar-tree. Builtin git-ls-tree. Builtin git-ls-files.
2006-05-24Merge branch 'lt/dirwalk'Libravatar Junio C Hamano1-7/+8
This makes 'git add' and 'git rm' built-ins. * lt/dirwalk: Add builtin "git rm" command Move pathspec matching from builtin-add.c into dir.c Prevent bogus paths from being added to the index. builtin-add: fix unmatched pathspec warnings. Remove old "git-add.sh" remnants builtin-add: warn on unmatched pathspecs Do "git add" as a builtin Clean up git-ls-file directory walking library interface libify git-ls-files directory traversal
2006-05-23Merge branch 'jc/tartree' into jc/builtin-n-tar-treeLibravatar Junio C Hamano1-4/+6
* jc/tartree: built-in tar-tree and remote tar-tree
2006-05-23Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree.Libravatar Peter Eriksen1-6/+6
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-show-branch.Libravatar Peter Eriksen1-3/+3
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-apply.Libravatar Peter Eriksen1-3/+5
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-commit-tree.Libravatar Peter Eriksen1-3/+3
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-read-tree.Libravatar Peter Eriksen1-3/+3
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-tar-tree.Libravatar Peter Eriksen1-3/+5
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-ls-tree.Libravatar Peter Eriksen1-3/+3
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-23Builtin git-ls-files.Libravatar Peter Eriksen1-3/+3
Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-22Install git builtins into gitexecdir rather than bindir.Libravatar Sean1-1/+8
Moving "git-cmd" commands out of the path and into a special git exec path, should include the builtins. [jc: fixed the case where bindir == gitexecdir - ln -f fails with a complaint that src and dst are the same, likewise for the fallback cp.] Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-21NO_INET_NTOP and compat/inet_ntop.c for some systems (e.g. old Cygwin).Libravatar Yakov Lerner1-0/+3
For systems which lack inet_ntop(), this adds compat/inet_ntop.c, and related build constant, NO_INET_NTOP. Older Cygwin(s) lack inet_ntop(). Signed-off-by: Yakov Lerner <iler.ml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-21git-format-patch: now built-in.Libravatar Junio C Hamano1-2/+2
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-20Merge branch 'lt/dirwalk' into jc/dirwalk-n-cache-treeLibravatar Junio C Hamano1-7/+8
This commit is what this branch is all about. It records the evil merge needed to adjust built-in git-add and git-rm for the cache-tree extension. * lt/dirwalk: Add builtin "git rm" command Move pathspec matching from builtin-add.c into dir.c Prevent bogus paths from being added to the index. builtin-add: fix unmatched pathspec warnings. Remove old "git-add.sh" remnants builtin-add: warn on unmatched pathspecs Do "git add" as a builtin Clean up git-ls-file directory walking library interface libify git-ls-files directory traversal Conflicts: Makefile builtin.h git.c update-index.c
2006-05-20Merge branch 'jc/cache-tree' into jc/dirwalk-n-cache-treeLibravatar Junio C Hamano1-1/+4
* jc/cache-tree: (24 commits) Fix crash when reading the empty tree fsck-objects: do not segfault on missing tree in cache-tree cache-tree: a bit more debugging support. read-tree: invalidate cache-tree entry when a new index entry is added. Fix test-dump-cache-tree in one-tree disappeared case. fsck-objects: mark objects reachable from cache-tree cache-tree: replace a sscanf() by two strtol() calls cache-tree.c: typefix test-dump-cache-tree: validate the cached data as well. cache_tree_update: give an option to update cache-tree only. read-tree: teach 1-way merege and plain read to prime cache-tree. read-tree: teach 1 and 2 way merges about cache-tree. update-index: when --unresolve, smudge the relevant cache-tree entries. test-dump-cache-tree: report number of subtrees. cache-tree: sort the subtree entries. Teach fsck-objects about cache-tree. index: make the index file format extensible. cache-tree: protect against "git prune". Add test-dump-cache-tree Use cache-tree in update-index. ...
2006-05-19built-in tar-tree and remote tar-treeLibravatar Junio C Hamano1-3/+3
This makes tar-tree a built-in. As an added bonus, you can now say: git tar-tree --remote=remote-repository <ent> [<base>] This does not work with git-daemon yet, but should work with localhost and git over ssh transports. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-19Add builtin "git rm" commandLibravatar Linus Torvalds1-3/+5
This changes semantics very subtly, because it adds a new atomicity guarantee. In particular, if you "git rm" several files, it will now do all or nothing. The old shell-script really looped over the removed files one by one, and would basically randomly fail in the middle if "-f" was used and one of the files didn't exist in the working directory. This C builtin one will not re-write the index after each remove, but instead remove all files at once. However, that means that if "-f" is used (to also force removal of the file from the working directory), and some files have already been removed from the workspace, it won't stop in the middle in some half-way state like the old one did. So what happens is that if the _first_ file fails to be removed with "-f", we abort the whole "git rm". But once we've started removing, we don't leave anything half done. If some of the other files don't exist, we'll just ignore errors of removal from the working tree. This is only an issue with "-f", of course. I think the new behaviour is strictly an improvement, but perhaps more importantly, it is _different_. As a special case, the semantics are identical for the single-file case (which is the only one our test-suite seems to test). The other question is what to do with leading directories. The old "git rm" script didn't do anything, which is somewhat inconsistent. This one will actually clean up directories that have become empty as a result of removing the last file, but maybe we want to have a flag to decide the behaviour? Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-19Fix build procedure for builtin-init-dbLibravatar Junio C Hamano1-1/+1
c3c8835fbb182d971d71939b9a3ec7c8b86d6caf broke the default template location which is in builtin-init-db.o, by not supplying the compilation-time constant to the right build commands. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-19Merge branch 'eb/quilt'Libravatar Junio C Hamano1-1/+1
* eb/quilt: Implement a --dry-run option to git-quiltimport Implement git-quiltimport
2006-05-19Merge branch 'ts/doctar'Libravatar Junio C Hamano1-1/+21
* ts/doctar: Documentation/Makefile: create tarballs for the man pages and html files
2006-05-19Builtin git-init-dbLibravatar Timo Hirvonen1-7/+6
Basically this just renames init-db.c to builtin-init-db.c and makes some strings const. Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-18Implement git-quiltimportLibravatar Eric W. Biederman1-1/+1
Importing a quilt patch series into git is not very difficult but parsing the patch descriptions and all of the other minutia take a bit of effort to get right, so this automates it. Since git and quilt complement each other it makes sense to make it easy to go back and forth between the two. If a patch is encountered that it cannot derive the author from the user is asked. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-18Documentation/Makefile: create tarballs for the man pages and html filesLibravatar Tilman Sauerbeck1-1/+21
[jc: rewrote by stealing from what I run to update html and man branches automatically] Signed-off-by: Tilman Sauerbeck <tilman@code-monkey.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-18Make git-check-format-ref a builtin.Libravatar Lukas Sandström1-3/+3
Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-18Make "git rev-list" be a builtinLibravatar Linus Torvalds1-3/+3
This was surprisingly easy. The diff is truly minimal: rename "main()" to "cmd_rev_list()" in rev-list.c, and rename the whole file to reflect its new built-in status. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-17Remove old "git-add.sh" remnantsLibravatar Linus Torvalds1-2/+2
Repeat after me: "It's now a built-in" Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-17Do "git add" as a builtinLibravatar Linus Torvalds1-1/+1
First try. Let's see how well this works. In many ways, the hard parts of "git commit" are not so different from this, and a builtin commit would share a lot of the code, I think. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-17libify git-ls-files directory traversalLibravatar Linus Torvalds1-2/+2
This moves the core directory traversal and filename exclusion logic into the general git library, making it available for other users directly. If we ever want to do "git commit" or "git add" as a built-in (and we do), we want to be able to handle most of git-ls-files as a library. NOTE! Not all of git-ls-files is libified by this. The index matching and pathspec prefix calculation is still in ls-files.c, but this is a big part of it. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-16Remove old "git-grep.sh" remnantsLibravatar Linus Torvalds1-2/+3
It's built-in now. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-15Merge branch 'jc/grep'Libravatar Junio C Hamano1-1/+2
* jc/grep: (22 commits) Fix silly typo in new builtin grep builtin-grep: unparse more command line options. builtin-grep: use external grep when we can take advantage of it builtin-grep: -F (--fixed-strings) builtin-grep: -w fix builtin-grep: typofix builtin-grep: tighten argument parsing. builtin-grep: documentation Teach -f <file> option to builtin-grep. builtin-grep: -L (--files-without-match). builtin-grep: binary files -a and -I builtin-grep: terminate correctly at EOF builtin-grep: tighten path wildcard vs tree traversal. builtin-grep: support -w (--word-regexp). builtin-grep: support -c (--count). builtin-grep: allow more than one patterns. builtin-grep: allow -<n> and -[ABC]<n> notation for context lines. builtin-grep: printf %.*s length is int, not ptrdiff_t. builtin-grep: do not use setup_revisions() builtin-grep: support '-l' option. ...
2006-05-15Merge branch 'fix'Libravatar Junio C Hamano1-1/+3
* fix: Fix pack-index issue on 64-bit platforms a bit more portably. Install git-send-email by default Fix compilation on newer NetBSD systems git config syntax updates Another config file parsing fix. checkout: use --aggressive when running a 3-way merge (-m).
2006-05-15Install git-send-email by defaultLibravatar Eric Wong1-5/+2
After 567ffeb7722eefab3991cb894c96548b92b57cc2 and 4bc87a28be020a6bf7387161c65ea3d8e4a0228b, git-send-email no longer requires any non-standard Perl modules, so there's no reason to special-case it. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-15Fix compilation on newer NetBSD systemsLibravatar Dennis Stosberg1-1/+3
NetBSD >=2.0 has iconv() in libc. A libiconv is not required and does not exist. See: http://netbsd.gw.com/cgi-bin/man-cgi?iconv+3+NetBSD-2.0 [jc: with a bit of simplification later discussed on the list.] Signed-off-by: Dennis Stosberg <dennis@stosberg.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-14Install git-send-email by defaultLibravatar Eric Wong1-5/+2
After 567ffeb7722eefab3991cb894c96548b92b57cc2 and 4bc87a28be020a6bf7387161c65ea3d8e4a0228b, git-send-email no longer requires any non-standard Perl modules, so there's no reason to special-case it. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-09Merge branch 'np/delta'Libravatar Junio C Hamano1-1/+1
* np/delta: improve diff-delta with sparse and/or repetitive data tiny optimization to diff-delta replace adler32 with Rabin's polynomial in diff-delta use delta index data when finding best delta matches split the diff-delta interface