summaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* read-trees: refactor the unpack_trees() partJohannes Schindelin2006-07-301-2/+2
| | | | | | | | Basically, the options are passed by a struct unpack_trees_options now. That's all. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Build on Debian GNU/kFreeBSDGerrit Pape2006-07-301-0/+3
| | | | | | | | | Patch from Petr Salinger to make the build process detect and support the Debian GNU/kFreeBSD architecture, see http://bugs.debian.org/380209 Signed-off-by: Gerrit Pape <pape@smarden.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'js/mv'Junio C Hamano2006-07-301-5/+6
|\ | | | | | | | | | | | | * js/mv: builtin git-mv: support moving directories Make git-mv a builtin Extract helper bits from c-merge-recursive work
| * Make git-mv a builtinJohannes Schindelin2006-07-261-5/+6
| | | | | | | | | | | | | | | | This also moves add_file_to_index() to read-cache.c. Oh, and while touching builtin-add.c, it also removes a duplicate git_config() call. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'jn/make'Junio C Hamano2006-07-301-0/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jn/make: Set datarootdir in config.mak.in Quote all calls to GIT_CONF_APPEND_LINE Typofix in configure.ac comment. configure.ac vertical whitespace usage cleanup autoconf: Checks for some programs autoconf: Checks for libraries autoconf: Checks for some library functions. autoconf: Checks for typedefs, structures, and compiler characteristics. autoconf: Preparing the way for autodetection Copy description of build configuration variables to configure.ac Teach make clean about configure and autoconf autoconf: Use autoconf to write installation directories to config.mak.autogen
| * | Teach make clean about configure and autoconfJakub Narebski2006-07-081-0/+2
| | | | | | | | | | | | | | | Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | autoconf: Use autoconf to write installation directories to config.mak.autogenJakub Narebski2006-07-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is beginning of patch series introducing installation configuration using autoconf (and no other autotools) to git. The idea is to generate config.mak.autogen using ./configure (generated from configure.ac by running autoconf) from config.mak.in, so one can use autoconf as an _alternative_ to ordinary Makefile, and creating one's own config.mak. Local settings in config.mak override generated settings in config.mak.autogen This patch includes minimal configure.ac and config.mak.in, so one can set installation directories using autoconf generated ./configure script e.g. ./configure --prefix=/usr Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Makefile: ssh-pull.o depends on ssh-fetch.cJohannes Schindelin2006-07-281-0/+2
| |/ |/| | | | | | | Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'pb/configure'Junio C Hamano2006-07-261-2/+4
|\ \ | |/ | | | | | | | | * pb/configure: Rename man1 and man7 variables to man1dir and man7dir Allow INSTALL, bindir, mandir to be set in main Makefile
| * Rename man1 and man7 variables to man1dir and man7dirJakub Narebski2006-06-291-2/+2
| | | | | | | | | | | | | | | | | | This patch renames man1 and man7 variables to man1dir and man7dir, according to "Makefile Conventions: Variables for Installation Directories" in make.info of GNU Make. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Allow INSTALL, bindir, mandir to be set in main MakefileJakub Narebski2006-06-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Makefiles in subdirectories now use existing value of INSTALL, bindir, mandir if it is set, allowing those to be set in main Makefile or in included config.mak. Main Makefile exports variables which it sets. Accidentally it renames bin to bindir in Documentation/Makefile (should be bindir from start, but is unused, perhaps to be removed). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-instaweb: respect bindir from MakefileJohannes Schindelin2006-07-261-1/+1
| | | | | | | | | | | | | | Not everybody installs git to /usr/bin/git. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Disable linking with Fink or DarwinPorts.Shawn Pearce2006-07-231-8/+22
| | | | | | | | | | | | | | | | | | It may be desirable for the compiler to disable linking against Fink or DarwinPorts, especially if both are installed on the system and the user wants GIT to be linked specifically to only one of them. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'lt/prune'Junio C Hamano2006-07-121-3/+3
|\ \ | | | | | | | | | | | | * lt/prune: builtin "git prune"
| * | builtin "git prune"Linus Torvalds2006-07-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This actually removes the objects to be pruned, unless you specify "-n" (at which point it will just tell you which files it would prune). This doesn't do the pack-file pruning that the shell-script used to do, but if somebody really wants to, they could add it easily enough. I wonder how useful it is, though, considering that "git repack -a -d" is just a lot more efficient and generates a better end result. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'lt/merge-tree'Junio C Hamano2006-07-121-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * lt/merge-tree: Improved three-way blob merging code Prepare "git-merge-tree" for future work xdiff: generate "anti-diffs" aka what is common to two files
| * | | Improved three-way blob merging codeLinus Torvalds2006-06-281-1/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fleshes out the code that generates a three-way merge of a set of blobs. It still actually does the three-way merge using an external executable (ie just calling "merge"), but the interfaces have been cleaned up a lot and are now fully based on the 'mmfile_t' interface, so if libxdiff were to ever grow a compatible three-way-merge, it could probably be directly plugged in. It also uses the previous XDL_EMIT_COMMON functionality extension to libxdiff to generate a made-up base file for the merge for the case where no base file previously existed. This should be equivalent to what we currently do in git-merge-one-file.sh: diff -u -La/$orig -Lb/$orig $orig $src2 | git-apply --no-add except it should be much simpler and can be done using the direct libxdiff interfaces. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'ew/svn'Junio C Hamano2006-07-091-1/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ew/svn: Fix some doubled word typos Typofix in Makefile comment. Makefile: export NO_SVN_TESTS git-svn: migrate out of contrib (follow-up) git-svn: migrate out of contrib
| * | | Typofix in Makefile comment.Pavel Roskin2006-07-091-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Makefile: export NO_SVN_TESTSJohannes Schindelin2006-07-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this patch, it really is not sufficient to define NO_SVN_TESTS in config.mak or the Makefile. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | git-svn: migrate out of contribEric Wong2006-07-061-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow NO_SVN_TESTS to be defined to skip git-svn tests. These tests are time-consuming due to SVN being slow, and even more so if SVN Perl libraries are not available. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Assorted typo fixesPavel Roskin2006-07-091-2/+2
| |_|/ |/| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Using 'perl' in *.shMichal Rokos2006-07-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Some GIT's shell script are using bare 'perl' for perl invocation. Use @@PERL@@ symbol and replace it with PERL_PATH_SQ everywhere. Signed-off-by: Michal Rokos <michal.rokos@nextsoft.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | sed -e '/RE/r rfile/' needs space in 'r rfile'Michal Rokos2006-07-081-2/+2
|/ / | | | | | | | | | | | | | | Some implementations of sed (like HP-UX one) mandate a space between 'r' and 'rfile'. Signed-off-by: Michal Rokos <michal.rokos@nextsoft.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'ew/instaweb'Junio C Hamano2006-07-061-1/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | * ew/instaweb: instaweb: fix unportable ';' usage in sed Makefile: replace ugly and unportable sed invocation Add git-instaweb, instantly browse the working repo with gitweb gitweb: Declare global variables with "our" gitweb: Enable tree (directory) history display gitweb: optimize per-file history generation
| * | Makefile: replace ugly and unportable sed invocationJohannes Schindelin2006-07-021-5/+5
| | | | | | | | | | | | | | | Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Add git-instaweb, instantly browse the working repo with gitwebEric Wong2006-07-011-1/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got tired of having to configure gitweb for every repository I work on. I sometimes prefer gitweb to standard GUIs like gitk or gitview; so this lets me automatically configure gitweb to browse my working repository and also opens my browser to it. Updates from the original patch: Added Apache/mod_perl2 compatibility if Dennis Stosberg's gitweb has been applied, too: <20060621130708.Gcbc6e5c@leonov.stosberg.net> General cleanups in shell code usage. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'jc/sha1'Junio C Hamano2006-07-051-0/+6
|\ \ | | | | | | | | | | | | | | | | | | * jc/sha1: A better-scheduled PPC SHA-1 implementation. test-sha1: test hashing large buffer Makefile: add framework to verify and bench sha1 implementations.
| * | Makefile: add framework to verify and bench sha1 implementations.Junio C Hamano2006-06-241-0/+6
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Make git-fmt-merge-msg a builtinJohannes Schindelin2006-07-031-3/+4
| | | | | | | | | | | | | | | Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Makefile: tighten git-http-{fetch,push} dependenciesJunio C Hamano2006-07-031-2/+2
| |/ |/| | | | | | | | | | | | | | | | | Although our "git-%$X:" implicit target had dependency on $(GITLIBS) which included xdiff/lib.a, git-http-{fetch,push} had their own building rules and with an obsolete dependency on $(LIB_FILES). Update the rules to depend on $(GITLIBS), to make parallel build work correctly. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Rename safe_strncpy() to strlcpy().Peter Eriksen2006-06-241-0/+14
|/ | | | | | | | | | | This cleans up the use of safe_strncpy() even more. Since it has the same semantics as strlcpy() use this name instead. Also move the definition from inside path.c to its own file compat/strlcpy.c, and use it conditionally at compile time, since some platforms already has strlcpy(). It's included in the same way as compat/setenv.c. Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Makefile: do not recompile main programs when libraries have changed.Junio C Hamano2006-06-221-1/+1
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'js/lsfix'Junio C Hamano2006-06-221-23/+17
|\ | | | | | | | | | | | | | | | | | | | | * js/lsfix: Initialize lock_file struct to all zero. Make git-update-ref a builtin Make git-update-index a builtin Make git-stripspace a builtin Make git-mailinfo a builtin Make git-mailsplit a builtin Make git-write-tree a builtin
| * Make git-update-ref a builtinLukas Sandström2006-06-181-3/+4
| | | | | | | | | | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make git-update-index a builtinLukas Sandström2006-06-181-3/+3
| | | | | | | | | | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make git-stripspace a builtinLukas Sandström2006-06-181-3/+3
| | | | | | | | | | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make git-mailinfo a builtinLukas Sandström2006-06-181-10/+4
| | | | | | | | | | | | | | [jc: with a bit of constness tightening] Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make git-mailsplit a builtinLukas Sandström2006-06-181-3/+2
| | | | | | | | | | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make git-write-tree a builtinLukas Sandström2006-06-181-3/+3
| | | | | | | | | | Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'jc/upload-corrupt'Junio C Hamano2006-06-221-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | * jc/upload-corrupt: daemon: send stderr to /dev/null instead of closing. upload-pack/fetch-pack: support side-band communication Retire git-clone-pack upload-pack: prepare for sideband message support. upload-pack: avoid sending an incomplete pack upon failure
| * | Retire git-clone-packJunio C Hamano2006-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The program is not used by git-clone since git-fetch-pack was extended to allow its caller do what git-clone-pack alone did, and git-clone was updated to use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Makefile: do not force unneeded recompilation upon GIT_VERSION changesJunio C Hamano2006-06-221-1/+1
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Pass -DDEFAULT_GIT_TEMPLATE_DIR only where actually used.Yakov Lerner2006-06-221-1/+2
|/ / | | | | | | | | | | | | | | | | | | | | Before this patch, -DDEFAULT_GIT_TEMPLATE_DIR was passed on compilation command line to all and every .c file compiled. In fact the macro is used by only one .c file, and unused by all other .c files. Remove -DDEFAULT_GIT_TEMPLATE_DIR where unused. Follow the example of exec_cmd.o. Pass -DDEFAULT_GIT_TEMPLATE_DIR only where actually used. Signed-off-by: Yakov Lerner <iler.ml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add specialized object allocatorLinus Torvalds2006-06-191-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This creates a simple specialized object allocator for basic objects. This avoids wasting space with malloc overhead (metadata and extra alignment), since the specialized allocator knows the alignment, and that objects, once allocated, are never freed. It also allows us to track some basic statistics about object allocations. For example, for the mozilla import, it shows object usage as follows: blobs: 627629 (14710 kB) trees: 1119035 (34969 kB) commits: 196423 (8440 kB) tags: 1336 (46 kB) and the simpler allocator shaves off about 2.5% off the memory footprint off a "git-rev-list --all --objects", and is a bit faster too. [ Side note: this concludes the series of "save memory in object storage". The thing is, there simply isn't much more to be saved on the objects. Doing "git-rev-list --all --objects" on the mozilla archive has a final total RSS of 131498 pages for me: that's about 513MB. Of that, the object overhead is now just 56MB, the rest is going somewhere else (put another way: the fact that this patch shaves off 2.5% of the total memory overhead, considering that objects are now not much more than 10% of the total shows how big the wasted space really was: this makes object allocations much more memory- and time-efficient). I haven't looked at where the rest is, but I suspect the bulk of it is just the pack-file loading. It may be that we should pack the tree objects separately from the blob objects: for git-rev-list --objects, we don't actually ever need to even look at the blobs, but since trees and blobs are interspersed in the pack-file, we end up not being dense in the tree accesses, so we end up looking at more pages than we strictly need to. So with a 535MB pack-file, it's entirely possible - even likely - that most of the remaining RSS is just the mmap of the pack-file itself. We don't need to map in _all_ of it, but we do end up mapping a fair amount. ] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'yl/build'Junio C Hamano2006-06-181-8/+20
|\ | | | | | | | | * yl/build: auto-detect changed prefix and/or changed build flags
| * auto-detect changed prefix and/or changed build flagsYakov Lerner2006-06-171-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>
* | Remove "refs" field from "struct object"Linus Torvalds2006-06-181-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>
* | Make release tarballs friendlier to older tar versionsRene Scharfe2006-06-181-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>
* Built-in git-get-tar-commit-idRene Scharfe2006-06-101-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>