summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix packname hash generation.Junio C Hamano2005-10-122-6/+23
| | | | | | | | | | | | | | | This changes the generation of hash packfiles have in their names, from "hash of object names as fed to us" to "hash of object names in the resulting pack, in the order they appear in the index file". The new "git-index-pack" command is taught to output the computed hash value to its standard output. With this, we can store downloaded pack in a temporary file without knowing its final name, run git-index-pack to generate idx for it while finding out its final name, and then rename the pack and idx to their final names. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Add git-index-pack utilitySergey Vlasov2005-10-125-1/+517
| | | | | | | | | | git-index-pack builds a pack index file for an existing packed archive. With this utility a packed archive which was transferred without the corresponding pack index can be added to objects/pack/ without repacking. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-am: interactive should fail gracefully.Junio C Hamano2005-10-121-2/+2
| | | | | | | | When feeding patches from standard input, and --interactive is specified, quit, so that the user can re-run the command, instead of infinitely looping. Signed-off-by: Junio C Hamano <junkio@cox.net>
* git-fetch --tags: deal with tags with spaces in them.Junio C Hamano2005-10-111-5/+18
| | | | | | | | | | | | | | "git-fetch --tags" can get confused with tags with spaces in their names, it used to use shell IFS to split the list of tags and also used curl which insists the URL to be escaped. Fix it so it can work with Martin's moodle repository http://locke.catalyst.net.nz/git/moodle.git/. We still reserve characters like leading plus-sign '+' and colon ':' anywhere to represent refspec src-dst pair, and obviously we cannot use LF (that terminates Pull: line in .git/remotes files), but now you can have spaces with this patch. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Quote reference names while fetching with curl.Junio C Hamano2005-10-111-8/+47
| | | | | | | | | | | | | | curl_escape ought to do this, but we should not let it quote slashes (nobody said refs/tags cannot have subdirectories), so we roll our own safer version. With this, the last part of git-clone from Martin's moodle repository that used to fail now works, which reads: $ git-http-fetch -v -a -w 'tags/MOODLE_15_MERGED **INVALID**' \ 'tags/MOODLE_15_MERGED **INVALID**' \ http://locke.catalyst.net.nz/git/moodle.git/ Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'fixes'Junio C Hamano2005-10-111-1/+4
|\
| * [PATCH] cvsimport: don't pass --cvs-direct if user options contradict usMartin Langhoff2005-10-111-1/+4
| | | | | | | | | | | | | | | | | | | | Detecting if the user passed --no-cvs-direct and don't force the mode. It allows us to support all the protocol that the standard cvs client supports at the snail speed you should expect. This only affects the rlog reading stage. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
* | Make git config variable names case-insensitiveLinus Torvalds2005-10-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | They always were meant to be case-insensitive, but I had missed one "tolower()", making that not true. The actual _values_ aren't case-insensitive, of course, although some uses of them may be (ie boolean parsing uses "strcasecmp()" to match against the strings "true" and "false"). Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Use git config file for committer name and email infoLinus Torvalds2005-10-119-78/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This starts using the "user.name" and "user.email" config variables if they exist as the default name and email when committing. This means that you don't have to use the GIT_COMMITTER_EMAIL environment variable to override your email - you can just edit the config file instead. The patch looks bigger than it is because it makes the default name and email information non-static and renames it appropriately. And it moves the common git environment variables into a new library file, so that you can link against libgit.a and get the git environment without having to link in zlib and libcrypt. In short, most of it is renaming and moving, the real change core is just a few new lines in "git_default_config()" that copies the user config values to the new base. It also changes "git-var -l" to list the config variables. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Export template_dir in Makefile.Tom Prince2005-10-111-1/+1
| | | | | | | | | | | | | | | | | | If somebody set template_dir in config.mak. Then git-init-db would be compiled with the correct location but the templates would be installed in the default location. Fix it. Signed-off-by: Tom Prince <tom.prince@ualberta.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Use core.filemode.Junio C Hamano2005-10-114-9/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With "[core] filemode = false", you can tell git to ignore differences in the working tree file only in executable bit. * "git-update-index --refresh" does not say "needs update" if index entry and working tree file differs only in executable bit. * "git-update-index" on an existing path takes executable bit from the existing index entry, if the path and index entry are both regular files. * "git-diff-files" and "git-diff-index" without --cached flag pretend the path on the filesystem has the same executable bit as the existing index entry, if the path and index entry are both regular files. If you are on a filesystem with unreliable mode bits, you may need to force the executable bit after registering the path in the index. * "git-update-index --chmod=+x foo" flips the executable bit of the index file entry for path "foo" on. Use "--chmod=-x" to flip it off. Note that --chmod only works in index file and does not look at nor update the working tree. So if you are on a filesystem and do not have working executable bit, you would do: 1. set the appropriate .git/config option; 2. "git-update-index --add new-file.c" 3. "git-ls-files --stage new-file.c" to see if it has the desired mode bits. If not, e.g. to drop executable bit picked up from the filesystem, say "git-update-index --chmod=-x new-file.c". Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Improve config file escape sanity checkingLinus Torvalds2005-10-111-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | I had meant to disallow unknown escape characters in the config file parser, but instead an unknown escaped character would silently pass through as itself. That's correct for some cases (notably '\' itself), but wasn't correct in general. This fixes it, and makes the parser write a nice error message if the config file contains bogus escaped characters. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | show-branch: optionally use unique prefix as name.Junio C Hamano2005-10-114-44/+82
| | | | | | | | | | | | | | | | | | | | git-show-branch acquires two new options. --sha1-name to name commits using the unique prefix of their object names, and --no-name to not to show names at all. This was outlined in <7vk6gpyuyr.fsf@assigned-by-dhcp.cox.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Support custom build options in config.makJohannes Schindelin2005-10-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | With this patch, it is possible to store configuration options like NO_CURL=YesPlease or NO_OPENSSL=YesPlease into a file named config.mak, which will be included in the Makefile. [jc: redone with suggestion from Daniel Barkalow to just use -include] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Use git-update-ref and git-symbolic-ref in testsJohannes Schindelin2005-10-114-6/+6
| | | | | | | | | | | | | | This makes all tests pass on cygwin. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Remove unused 'got_alternates' variable.Junio C Hamano2005-10-101-5/+1
| | | | | | | | | | | | | | The function fetch_alternates() is called only once from the main now. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Use the same move_temp_to_file in git-http-fetch.Junio C Hamano2005-10-103-31/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The http commit walker cannot use the same temporary file creation code because it needs to use predictable temporary filename for partial fetch continuation purposes, but the code to move the temporary file to the final location should be usable from the ordinary object creation codepath. Export move_temp_to_file from sha1_file.c and use it, while losing the custom relink_or_rename function from http-fetch.c. Also the temporary object file creation part needs to make sure the leading path exists, in preparation of the really lazy fan-out directory creation. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Restore functionality to allow proxies to cache objectsNick Hengeveld2005-10-101-1/+7
| | | | | | | | | | | | | | | | | | | | | | The parallel request changes didn't properly implement the previous patch to allow caching of retrieved objects by proxy servers. Restore the previous functionality such that by default requests include the "Pragma: no-cache" header, and this header is removed on requests for pack indexes, packs, and objects. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | [PATCH] Don't fetch objects that exist in the local repositoryNick Hengeveld2005-10-103-3/+14
| | | | | | | | | | | | | | | | | | | | | | Be sure not to fetch objects that already exist in the local repository. The main process loop no longer performs this check, http-fetch now checks prior to starting a new request queue entry and when fetch_object() is called, and local-fetch now checks when fetch_object() is called. As discussed in this thread: http://marc.theaimsgroup.com/?t=112854890500001 Signed-off-by: Nick Hengeveld <nickh@reactrix.com>
* | Set the parallel HTTP request limit via an environment variableNick Hengeveld2005-10-101-11/+6
| | | | | | | | | | | | | | | | | | Use an environment variable rather than a command-line argument to set the parallel HTTP request limit. This allows the setting to work whether git-http-fetch is run directly or via git-fetch. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Only compile parallel HTTP support with CURL >= 7.9.8Nick Hengeveld2005-10-101-5/+57
| | | | | | | | | | | | | | Only compile parallel HTTP support with CURL >= 7.9.8 Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add support for parallel HTTP transfersNick Hengeveld2005-10-101-223/+587
| | | | | | | | | | | | | | | | | | | | | | | | | | Add support for parallel HTTP transfers. Prefetch populates a queue of objects to transfer and starts feeding requests to an active request queue for processing; fetch_object keeps the active queue moving while the specified object is being transferred. The size of the active queue can be restricted using -r and defaults to 5 concurrent transfers. Requests for objects that are not prefetched are also processed via the active queue. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Remove empty directories after read-tree -u.Junio C Hamano2005-10-101-1/+30
| | | | | | | | | | | | | | This fixes everybody's favorite gripe that switching branche with 'git checkout' leaves empty directories. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add ".git/config" file parserLinus Torvalds2005-10-106-1/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a first cut at a very simple parser for a git config file. The format of the file is a simple ini-file like thing, with simple variable/value pairs. You can (and should) make the variables have a simple single-level scope, ie a valid file looks something like this: # # This is the config file, and # a '#' or ';' character indicates # a comment # ; core variables [core] ; Don't trust file modes filemode = false ; Our diff algorithm [diff] external = "/usr/local/bin/gnu-diff -u" renames = true which parses into three variables: "core.filemode" is associated with the string "false", and "diff.external" gets the appropriate quoted value. Right now we only react to one variable: "core.filemode" is a boolean that decides if we should care about the 0100 (user-execute) bit of the stat information. Even that is just a parsing demonstration - this doesn't actually implement that st_mode compare logic itself. Different programs can react to different config options, although they should always fall back to calling "git_default_config()" on any config option name that they don't recognize. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'fixes'Junio C Hamano2005-10-105-8/+14
|\ \ | |/ | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * t5400-send-pack relies on a working cpioJohannes Schindelin2005-10-101-0/+3
| | | | | | | | | | | | | | | | Since cygwin does not install cpio by default, t5400 results in a very cryptic failure. So, test for cpio explicitely. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * git.sh: quote all pathsJonas Fonseca2005-10-101-2/+2
| | | | | | | | | | | | | | This makes it handle spaces in paths. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Teach git-status about spaces in file names also on MacOSXJohannes Schindelin2005-10-101-4/+4
| | | | | | | | | | | | | | | | Not all sed understands '\t' and consequently cuts off every file name at the first "t" (or backslash...). Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * OpenBSD needs the strcasestr replacement.Junio C Hamano2005-10-101-0/+1
| | | | | | | | | | | | Noticed by Randal L. Schwartz. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Also force LC_ALL in test scripts.Junio C Hamano2005-10-091-1/+2
| | | | | | | | | | | | Noticed by Junichi Uekawa. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | The synopsis of the manpages should use the hyphenated versionChristian Meder2005-10-108-8/+8
| | | | | | | | | | | | | | | | The synopsis of the manpages should use the hyphenated version of the git commands. Adapt the remaining offenders. Signed-off-by: Christian Meder <chris@absolutegiganten.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Convert usage of GIT and Git into gitChristian Meder2005-10-1024-55/+55
| | | | | | | | | | | | | | Convert usage of GIT and Git into git. Signed-off-by: Christian Meder <chris@absolutegiganten.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Remove the version tags from the manpagesJunio C Hamano2005-10-1064-64/+0
| | | | | | | | | | Signed-off-by: Christian Meder <chris@absolutegiganten.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Make rsh.c use sq_quote_buf()H. Peter Anvin2005-10-101-41/+5
| | | | | | | | | | | | Make rsh.c use sq_quote_buf() Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Trivial optimizationH. Peter Anvin2005-10-101-2/+1
| | | | | | | | | | | | GIT_DIR_ENVIRONMENT is always a string literal Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Enhanced sq_quote()H. Peter Anvin2005-10-102-24/+43
| | | | | | | | | | | | | | | | Create function to sq_quote into a buffer Handle !'s for csh-based shells Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Deal with $(bindir) and friends with whitespaces.Junio C Hamano2005-10-104-18/+36
| | | | | | | | | | | | ... using HPA's shellquote macro. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'fixes'Junio C Hamano2005-10-097-10/+23
|\ \ | |/ | | | | | | | | with minor hand resolving on git-tag. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * git-tag: update usage string and documentation.Junio C Hamano2005-10-092-4/+2
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * ignore new git-diff index header when computing patch idsKai Ruemmler2005-10-091-0/+4
| | | | | | | | | | | | | | | | Two else equal patches should not result in different checksums, only because they were applied to different versions of the file. Signed-off-by: Kai Ruemmler <kai.ruemmler@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Fix git-verify-tag for light-weight tagsPaolo 'Blaisorblade' Giarrusso2005-10-091-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | It currently exits printing "git-cat-file SHA1: bad file", while instead we must just abort the verification for light-weight tags (e.g. referring to commit objects). [jc: tag objects can tag anything not just commits, so I fixed up the original patch slightly. you should be able to validate a signed tag that points at a blob object. ] Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Make sure 'make install' does not have to rebuild templates.Junio C Hamano2005-10-091-3/+6
| | | | | | | | | | | | | | | | | | | | The dependency rule in templates directory forced 'make install' that immediately followed 'make all' to rebuild boilerplates. This was problematic for a workflow that built first as yourself and then installed as root, from a working tree that is on an NFS mounted filesystem that is unwritable by root. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Give proper prototype to gitstrcasestr.Junio C Hamano2005-10-082-1/+5
| | | | | | | | | | | | | | Borrow from NO_MMAP patch by Johannes, squelch compiler warnings by declaring gitstrcasestr() when we use it. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Write .editmsg in GIT_DIR to avoid being in git-status.Santi_Béjar2005-10-091-12/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It appears in the git-status output during a git-commit if you have something in info/exclude. Also for .cmitmsg and .cmitchk to make git-commit work in read-only working trees. [jc: while we are at it, I removed the use of .cmitchk temporary file which was not necessary, and renamed them -- they are out of way now and do not have to be dotfiles anymore.] Signed-off-by: Santi Béjar <sbejar@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Makefile: avoid error message from 'uname -o'Junio C Hamano2005-10-091-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | The platform specific tweaking part was using 'uname -o' which is not always available. Squelch error message from it. It was suggested to chain the if..else, but I chose not to, because maintaining the nested if..else if..else..endif endif to match is a pain. If we had "elif", things would have been different, though. While we are at it, try not to invoke 'uname -s' for each platform candidate. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | make $prefix available for sub-makefilesKai Ruemmler2005-10-082-3/+3
| | | | | | | | | | | | | | exports $prefix and makes Documentation/Makefile following it also. Signed-off-by: Kai Ruemmler <kai.ruemmler@gmx.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Yank writing-back support from gitfakemmap.Junio C Hamano2005-10-081-69/+6
| | | | | | | | | | | | | | We do not write through our use of mmap(), so make sure callers pass MAP_PRIVATE and remove support for writing changes back. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | [PATCH] If NO_MMAP is defined, fake mmap() and munmap()Johannes Schindelin2005-10-084-1/+135
| | | | | | | | | | | | | | | | Since some platforms do not support mmap() at all, and others do only just so, this patch introduces the option to fake mmap() and munmap() by malloc()ing and read()ing explicitely. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
* | Also use 'track_object_refs = 0' in update-server-info.Junio C Hamano2005-10-081-0/+3
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Reduce memory usage in git-update-server-info.robfitz@273k.net2005-10-081-0/+10
| | | | | | | | | | | | | | | | Modify parse_object_cheap() to also free all the entries from the tree data structures. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>