path: root/Makefile
AgeCommit message (Collapse)Author
2007-09-18Merge branch 'cr/reset'Junio C Hamano
* cr/reset: Simplify cache API An additional test for "git-reset -- path" Make "git reset" a builtin. Move make_cache_entry() from merge-recursive.c into read-cache.c Add tests for documented features of "git reset".
2007-09-15Merge branch 'np/delta'Junio C Hamano
* np/delta: builtin-pack-objects.c: avoid bogus gcc warnings threaded delta search: proper locking for cache accounting threaded delta search: add pack.threads config variable fix threaded delta search locking threaded delta search: specify number of threads at run time threaded delta search: better chunck split point threaded delta search: refine work allocation basic threaded delta search rearrange delta search progress reporting localize window memory usage accounting straighten the list of objects to deltify
2007-09-12Make "git reset" a builtin.Carlos Rica
This replaces the script "" with "builtin-reset.c". A few git commands used in the script are called from the builtin also: "ls-files" to check for unmerged files, "read-tree" for resetting the index file in "mixed" and "hard" resets, and "update-index" to refresh at the end in the "mixed" reset and also for the option that gets selected paths into the index. The reset option with paths was implemented by Johannes Schindelin. Since the option that gets selected paths into the index is not a "reset" like the others because it does not change the HEAD at all, now the command is showing a warning when the "--mixed" option is supplied for that purpose. The following table shows the behaviour of "git reset" for the different supported options, where X means "changing" the HEAD, index or working tree: reset: --soft --mixed --hard -- <paths> HEAD X X X - index - X X X files - - X - Signed-off-by: Carlos Rica <> Signed-off-by: Junio C Hamano <>
2007-09-12Define NO_MEMMEM of FreeBSD as it lacks the functionRobert Boone
Signed-off-by: Junio C Hamano <>
2007-09-10Merge branch 'rs/archive'Junio C Hamano
* rs/archive: archive - leakfix for format_subst() Define NO_MEMMEM on Darwin as it lacks the function archive: rename attribute specfile to export-subst archive: specfile syntax change: "$Format:%PLCHLDR$" instead of just "%PLCHLDR" (take 2) add memmem() Remove unused function convert_sha1_file() archive: specfile support (--pretty=format: in archive files) Export format_commit_message()
2007-09-09Define NO_MEMMEM on Darwin as it lacks the functionShawn O. Pearce
Signed-off-by: Shawn O. Pearce <> Signed-off-by: Junio C Hamano <>
2007-09-07add memmem()René Scharfe
memmem() is a nice GNU extension for searching a length limited string in another one. This compat version is based on the version found in glibc 2.2 (GPL 2); I only removed the optimization of checking the first char by hand, and generally tried to keep the code simple. We can add it back if memcmp shows up high in a profile, but for now I prefer to keep it (almost trivially) simple. Since I don't really know which platforms beside those with a glibc have their own memmem(), I used a heuristic: if NO_STRCASESTR is set, then NO_MEMMEM is set, too. Signed-off-by: Rene Scharfe <> Signed-off-by: Junio C Hamano <>
2007-09-06basic threaded delta searchNicolas Pitre
this is still rough, hence it is disabled by default. You need to compile with "make THREADED_DELTA_SEARCH=1 ..." at the moment. Threading is done on different portions of the object list to be deltified. This is currently done by spliting the list into n parts and then a thread is spawned for each of them. A better method would consist of spliting the list into more smaller parts and have the n threads pick the next part available. Signed-off-by: Nicolas Pitre <> Signed-off-by: Junio C Hamano <>
2007-09-06Makefile: Add cache-tree.h to the headers listDmitry V. Levin
The dependency was missing. Signed-off-by: Dmitry V. Levin <> Signed-off-by: Junio C Hamano <>
2007-08-31Makefile: do not allow gnu make to remove test-*.o filesJunio C Hamano
It appears parallel build (-j) gets confused. Signed-off-by: Junio C Hamano <>
2007-08-11Merge branch 'cr/tag'Junio C Hamano
* cr/tag: Teach "git stripspace" the --strip-comments option Make verify-tag a builtin. builtin-tag.c: Fix two memory leaks and minor notation changes. launch_editor(): Heed GIT_EDITOR and core.editor settings Make git tag a builtin.
2007-08-11Add support for an info version of the user manualDavid Kastrup
These patches use docbook2x in order to create an info version of the git user manual. No existing Makefile targets (including "all") are touched, so you need to explicitly say make info sudo make install-info to get created and installed. If the info target directory does not already contain a "dir" file, no directory entry is created. This facilitates $(DESTDIR)-based installations. The same could be achieved with sudo make INSTALL_INFO=: install-info explicitly. perl is used for patching up sub-par file and directory information in the Texinfo file. It would be cleaner to place the respective info straight into user-manual.txt or the conversion configurations, but I find myself unable to find out how to do this with Asciidoc/Texinfo. Signed-off-by: David Kastrup <>
2007-08-03Support building on GNU/HurdThomas Schwinge
GNU/Hurd systems don't have strlcpy. Signed-off-by: Thomas Schwinge <> Signed-off-by: Junio C Hamano <>
2007-08-01Add is_absolute_path() and make_absolute_path()Johannes Schindelin
This patch adds convenience functions to work with absolute paths. The function is_absolute_path() should help the efforts to integrate the MinGW fork. Note that make_absolute_path() returns a pointer to a static buffer. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2007-08-01make the name of the library directory a config optionRobert Schiele
Introduce new makefile variable lib to hold the name of the lib directory ("lib" by default). Also introduce a switch for configure to specify this name with --with-lib=ARG. This is useful for systems that use a different name than "lib" (like "lib64" on some 64 bit Linux architectures). Signed-off-by: Robert Schiele <> Signed-off-by: Junio C Hamano <>
2007-07-31add option to find zlib in custom pathRobert Schiele
Some systems do not provide zlib development headers and libraries in default search path of the compiler. For these systems we should allow specifying the location by --with-zlib=PATH or by setting ZLIB_PATH in the makefile. Signed-off-by: Robert Schiele <> Signed-off-by: Junio C Hamano <>
2007-07-29Makefile: use $(FIND) instead of findDavid Kastrup
Some people might prefer to be able to specify the find utility to use. Signed-off-by: David Kastrup <> Signed-off-by: Junio C Hamano <>
2007-07-27Make verify-tag a builtin.Carlos Rica
This replaces "" with "builtin-verify-tag.c". Testing relies on the "git tag -v" tests calling this command. A temporary file is needed when calling to gpg, because git is already creating detached signatures (gpg option -b) to sign tags (instead of leaving gpg to add the signature to the file by itself), and those signatures need to be supplied in a separate file to be verified by gpg. The program uses git_mkstemp to create that temporary file needed by gpg, instead of the previously used "$GIT_DIR/.tmp-vtag", in order to allow the command to be used in read-only repositories, and also prevent other instances of git to read or remove the same file. Signal SIGPIPE is ignored because the program sometimes was terminated because that signal when writing the input for gpg. The command now can receive many tag names to be verified. Documentation is also updated here to reflect this new behaviour. Signed-off-by: Carlos Rica <> Signed-off-by: Junio C Hamano <>
2007-07-20Make git tag a builtin.Carlos Rica
This replaces the script "" with "builtin-tag.c". The existing test suite for "git tag" guarantees the compatibility with the features provided by the script version. There are some minor changes in the behaviour of "git tag" here: "git tag -v" now can get more than one tag to verify, like "git tag -d" does, "git tag" with no arguments prints all tags, more like "git branch" does, and "git tag -n" also prints all tags with annotations (without needing -l). Tests and documentation were also updated to reflect these changes. The program is currently calling the script "git verify-tag" for verify. This can be changed porting it to C and calling its functions directly from builtin-tag.c. Signed-off-by: Carlos Rica <> Signed-off-by: Junio C Hamano <>
2007-07-15Remove "WITH_P4IMPORT" knob from the MakefileSean
Signed-off-by: Sean Estabrooks <> Signed-off-by: Junio C Hamano <>
2007-07-15Use $(RM) in Makefiles instead of 'rm -f'Emil Medve
Signed-off-by: Emil Medve <> Signed-off-by: Junio C Hamano <>
2007-07-10Makefile: rebuild git.o on version change, clean up git$X flagsMatt McCutchen
Commit 334d28ae factored out git.o as an intermediate stage between git.c and git$X. However: - It left some no-longer-relevant flags in the rule for git$X. - It failed to replace git$X with git.o in the list of files that record GIT_VERSION. This broke incorporation of a changed GIT_VERSION into git$X because, when GIT_VERSION changes, git.o isn't remade and git$X is relinked from the git.o that still contains the old GIT_VERSION. This patch removes the irrelevant flags and fixes incorporation of a changed GIT_VERSION into git$X. Signed-off-by: Matt McCutchen <> Signed-off-by: Junio C Hamano <>
2007-07-03Start deprecating "git-command" in favor of "git command"Linus Torvalds
I realize that a lot of people use the "git-xyzzy" format, and we have various historical reasons for it, but I also think that most people have long since started thinking of the git command as a single command with various subcommands, and we've long had the documentation talk about it that way. Slowly migrating away from the git-xyzzy format would allow us to eventually no longer install hundreds of binaries (even if most of them are symlinks or hardlinks) in users $PATH, and the _original_ reasons for it (implementation issues and bash completion) are really long long gone. Using "git xyzzy" also has some fundamental advantages, like the ability to specify things like paging ("git -p xyzzy") and making the whole notion of aliases act like other git commands (which they already do, but they do *not* have a "git-xyzzy" form!) Anyway, while actually removing the "git-xyzzy" things is not practical right now, we can certainly start slowly to deprecate it internally inside git itself - in the shell scripts we use, and the test vectors. This patch adds a "remove-dashes" makefile target, which does that. It isn't particularly efficient or smart, but it *does* successfully rewrite a lot of our shell scripts to use the "git xyzzy" form for all built-in commands. (For non-builtins, the "git xyzzy" format implies an extra execve(), so this script leaves those alone). So apply this patch, and then run make remove-dashes make test git commit -a to generate a much larger patch that actually starts this transformation. (The only half-way subtle thing about this is that it also fixes up for the new world order by adding quoting around the use of "git-commit-tree" as an argument. It doesn't need it in that format, but when changed into "git commit-tree" it is no longer a single word, and the quoting maintains the old behaviour). NOTE! This does not yet mean that you can actually stop installing the "git-xyzzy" binaries for the builtins. There are some remaining places that want to use the old form, this just removes the most obvious ones that can easily be done automatically. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2007-07-02Merge branch 'ns/stash'Junio C Hamano
* ns/stash: Documentation: quote {non-attributes} for asciidoc git-stash: don't complain when listing in a repo with no stash git-stash: fix "can't shift that many" with no arguments git-stash: fix "no arguments" case in documentation git-stash: require "save" to be explicit and update documentation Document git-stash Add git-stash script
2007-07-02Merge branch 'js/rebase'Junio C Hamano
* js/rebase: Teach rebase -i about --preserve-merges rebase -i: provide reasonable reflog for the rebased branch rebase -i: several cleanups ignore git-rebase--interactive Teach rebase an interactive mode Move the pick_author code to git-sh-setup
2007-07-01Add git-stash scriptしらいしななこ
When my boss has something to show me and I have to update, for some reason I am always in the middle of doing something else, and git pull command refuses to work in such a case. I wrote this little script to save the changes I made, perform the update, and then come back to where I was, but on top of the updated commit. This is how you would use the script: $ git stash $ git pull $ git stash apply [jc: with a few fixlets from the list] Signed-off-by: Nanako Shiraishi <> Signed-off-by: Junio C Hamano <>
2007-06-30Merge branch 'maint'Junio C Hamano
* maint: Correct the name of NO_R_TO_GCC_LINKER in the comment describing it. git-remote: document -n repack: improve documentation on -a option
2007-06-30Correct the name of NO_R_TO_GCC_LINKER in the comment describing it.Matt Kraai
Signed-off-by: Matt Kraai <> Signed-off-by: Junio C Hamano <>
2007-06-25Teach rebase an interactive modeJohannes Schindelin
Don't you just hate the fact sometimes, that git-rebase just applies the patches, without any possibility to edit them, or rearrange them? With "--interactive", git-rebase now lets you edit the list of patches, so that you can reorder, edit and delete patches. Such a list will typically look like this: pick deadbee The oneline of this commit pick fa1afe1 The oneline of the next commit ... By replacing the command "pick" with the command "edit", you can amend that patch and/or its commit message, and by replacing it with "squash" you can tell rebase to fold that patch into the patch before that. It is derived from the script sent to the list in <> Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2007-06-24make dist: include configure script in tarballMatthias Lederhofer
Signed-off-by: Matthias Lederhofer <> Signed-off-by: Junio C Hamano <>
2007-06-23Merge branch 'js/filter'Junio C Hamano
* js/filter: filter-branch: subdirectory filter needs --full-history filter-branch: Simplify parent computation. Teach filter-branch about subdirectory filtering filter-branch: also don't fail in map() if a commit cannot be mapped filter-branch: Use rev-list arguments to specify revision ranges. filter-branch: fix behaviour of '-k' filter-branch: use $(($i+1)) instead of $((i+1)) chmod +x filter-branch: prevent filters from reading from stdin t7003: make test repeatable Add git-filter-branch
2007-06-16Merge branch 'maint' to sync with GIT C Hamano
2007-06-16Documentation: adjust to AsciiDoc 8Junio C Hamano
It turns out that the attribute definition we have had for a long time to hide "^" character from AsciiDoc 7 was not honored by AsciiDoc 8 even under "-a asciidoc7compatible" mode. There is a similar breakage with the "compatible" mode with + characters. The double colon at the end of definition list term needs to be attached to the term, without a whitespace. After this minimum fixups, AsciiDoc 8 (I used 8.2.1 on Debian) with compatibility mode seems to produce reasonably good results. Signed-off-by: Junio C Hamano <>
2007-06-16Add a local implementation of hstrerror for the system which do not have itAlex Riesen
The function converts the value of h_errno (last error of name resolver library, see netdb.h). One of systems which supposedly do not have the function is SunOS. POSIX does not mandate its presence. Signed-off-by: Alex Riesen <> Signed-off-by: Junio C Hamano <>
2007-06-13Makefile: allow generating git.o for debugging purposesJunio C Hamano
Signed-off-by: Junio C Hamano <>
2007-06-13Makefile: common-cmds.h depends on scriptJunio C Hamano
Signed-off-by: Junio C Hamano <>
2007-06-12Remove trailing slash from $(template_dir).Johannes Sixt
All the other directory location variables do not have the trailing slash. Signed-off-by: Johannes Sixt <> Signed-off-by: Junio C Hamano <>
2007-06-12Avoid double-slash in path names that depend on $(sharedir).Johannes Sixt
Recent git-gui has the ability to determine the location of its library files relative to the --exec-dir. Its Makefile enables this capability depending on the install paths that are specified. However, without this fix there is an extra slash in a path specification, so that the Makefile does not recognize the equivalence of two paths that it compares. A side-effect is that all "standard" builds (which do not set $(sharedir) explicitly) now exploit above mentioned gut-gui feature. Another side-effect is that an ugly compiled-in double-slash in $(template_dir) is avoided. Signed-off-by: Johannes Sixt <> Signed-off-by: Junio C Hamano <>
2007-06-10Makefile: add an explicit rule for building assembly outputLinus Torvalds
In the kernel we have a rule for *.c -> *.s files exactly because it's nice to be able to easily say "ok, what does that generate". Here's a patch to add such a rule to git too, in case anybody is interested. It makes it much simpler to just do make sha1_file.s and look at the compiler-generated output that way, rather than having to fire up gdb on the resulting binary. (Add -fverbose-asm or something if you want to, it can make the result even more readable) [jc: add *.s to .gitignore] Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2007-06-06Makefile: Remove git-merge-base from PROGRAMS.Johannes Sixt
git-merge-base is a builtin. Signed-off-by: Johannes Sixt <> Signed-off-by: Junio C Hamano <>
2007-06-06make clean should remove all the test programs tooMatthias Lederhofer
Signed-off-by: Matthias Lederhofer <> Signed-off-by: Junio C Hamano <>
2007-06-03Add git-filter-branchJohannes Schindelin
This script is derived from Pasky's cg-admin-rewritehist. In fact, it _is_ the same script, minimally adapted to work without cogito. It _should_ be able to perform the same tasks, even if only relying on core-git programs. All the work is Pasky's, just the adaption is mine. Signed-off-by: Johannes Schindelin <> Hopefully-signed-off-by: Petr "cogito master" Baudis <> Signed-off-by: Junio C Hamano <>
2007-06-03Merge branches 'lh/submodules' and 'pb/am'Junio C Hamano
* lh/submodules: Add basic test-script for git-submodule Add git-submodule command * pb/am: Remove git-applypatch git-applymbox: Remove command
2007-05-31Makefile: Use generic rule to build test programsJulian Phillips
Use a generic make rule to build all the test programs, rather than specifically mentioning each one. Signed-off-by: Julian Phillips <> Signed-off-by: Junio C Hamano <>
2007-05-29Merge branch 'db/remote'Junio C Hamano
* db/remote: Move refspec pattern matching to match_refs(). Update local tracking refs when pushing Add handlers for fetch-side configuration of remotes. Move refspec parser from connect.c and cache.h to remote.{c,h} Move remote parsing into a library file out of builtin-push.
2007-05-29Makefile: Remove git-fsck and git-verify-pack from PROGRAMSNguyen Thai Ngoc Duy
Those are builtins. Remove them from PROGRAMS variable Signed-off-by: Nguyễn Thái Ngọc Duy <> Signed-off-by: Junio C Hamano <>
2007-05-27Add git-submodule commandLars Hjemli
This command can be used to initialize, update and inspect submodules. It uses a .gitmodules file, readable by git-config, in the top level directory of the 'superproject' to specify a mapping between submodule paths and repository url. Example .gitmodules layout: [module "git"] url = git:// With this entry in .gitmodules (and a commit reference in the index entry for the path "git"), the command 'git submodule init' will clone the repository at into the directory "git". Known issues ============ There is currently no way to override the url found in the .gitmodules file, except by manually creating the subproject repository. The place to fix this in the script has a rather long comment about a possible plan. Funny paths will be quoted in the output from git-ls-files, but git-submodule does not attempt to unquote (or even detect the presence of) such paths. Signed-off-by: Lars Hjemli <> Signed-off-by: Junio C Hamano <>
2007-05-25Remove git-applypatchJunio C Hamano
The previous one removed git-applymbox, which was the sole user of this tool. Signed-off-by: Junio C Hamano <>
2007-05-25git-applymbox: Remove commandPetr Baudis
I believe noone uses git-applymbox, and noone definitely should, since it is supposed to be completely superseded and everything by its younger cousin git-am. The only known person in the universe to use it was Linus and he declared some time ago that he will try to use git-am instead in his famous dotest script. The trouble is that git-applymbox existence creates confusing UI. I'm a bit like a recycled newbie to the git porcelain and *I* was confused by git-applymbox primitiveness until I've realized a while later that I'm of course using the wrong command. Signed-off-by: Petr Baudis <> Signed-off-by: Junio C Hamano <>
2007-05-21Move remote parsing into a library file out of builtin-push.Daniel Barkalow
The new parser is different from the one in builtin-push in two ways: the default is to use the current branch's remote, if there is one, before "origin"; and config is used in preference to remotes. Signed-off-by: Daniel Barkalow <> Signed-off-by: Junio C Hamano <>