summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-10-15Add new programs and stamp file to .gitignore.Tom Prince
Signed-off-by: Tom Prince <tom.prince@ualberta.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-14format-patch: take sequence of ranges.Junio C Hamano
This enhances set of revs you can give format-patch. Originally, format-patch took either one rev, or two revs: format-patch rev1 format-patch rev1 rev2 The first format was a short-hand for "format-patch rev1 HEAD" (i.e. rev2==HEAD). What this meant was to find commits that are in branch rev2 that has not been merged to branch rev1. The above notation is still supported, but now it takes sequence of "from1..to1 from2..to2 ...". In short, the second format has become a short-hand for "format-patch rev1..rev2". Commits in to1 but not in from1, to2 but not in from2, ... are formatted as emailable patches. With this, cherry-picking from other branch can be written as: git-format-patch -k --stdout master..branch1 master..branch2 | git-am -k -3 which is generally faster than traditional cherry-pick (which always did 3-way merge) if patches apply cleanly, and still falls back on 3-way merge if some of them do not. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Add "-l" flag for repacking only local packsLinus Torvalds
This uses the new "--local" flag to git-pack-objects. It currently only makes a difference together with "-a", since a normal incremental repack won't pack any packed objects at all (whether local or remote). Eventually, it might end up skipping any objects that aren't local to the current object directory, but for now it only knows to skip packed objects. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Add support for "local" packingLinus Torvalds
This adds the "--local" flag to git-pack-objects, which acts like "--incremental", except that instead of ignoring all packed objects, it only ignores objects that are packed and in an alternate object tree. As a result, it effectively only does a local re-pack: any remote-packed objects will stay in the alternate object directories. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Keep track of whether a pack is local or notLinus Torvalds
If we want to re-pack just local packfiles, we need to know whether a particular object is local or not. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13git-am: do not fail if 3-way fallback succeeds.Junio C Hamano
The current one incorrectly stops there without committing. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Add findtags - reworkedMartin Langhoff
A short perl script that will walk the tag refs, tag objects, and even commit objects in its quest to figure out whether the given SHA1 (for a commit or tree) was ever tagged. This version is reworked incorporating sanity, feature and style fixes from Junio. Usage: git-findtags.perl [ -t ] <commit-or-tree-sha1> Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Revert "Also use 'track_object_refs = 0' in update-server-info."Sergey Vlasov
This reverts d119e3de13ea1493107bd57381d0ce9c9dd90976 commit. Object references are used in server-info.c:find_pack_info_one() to find out which objects in the pack are heads, therefore tracking of references cannot be disabled. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13clone-pack: new option --keep tells it not to explode the pack.Junio C Hamano
With new option --keep, or a configuration item clone.keeppack (we need a better name, or start allowing dash,"clone.keep-pack"), the packed data downloaded while cloning is saved as a pack in .git/objects/pack/ locally, with index generated for it with git-index-pack. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13clone-pack: new option --keep tells it not to explode the pack.Junio C Hamano
With new option --keep, or a configuration item clone.keeppack (we need a better name, or start allowing dash,"clone.keep-pack"), the packed data downloaded while cloning is saved as a pack in .git/objects/pack/ locally, with index generated for it with git-index-pack. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-13Fix packname hash generation.Junio C Hamano
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>
2005-10-13Add git-index-pack utilitySergey Vlasov
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>
2005-10-13git-am: interactive should fail gracefully.Junio C Hamano
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>
2005-10-12git-fetch --tags: deal with tags with spaces in them.Junio C Hamano
"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>
2005-10-12Quote reference names while fetching with curl.Junio C Hamano
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>
2005-10-12Merge branch 'fixes'Junio C Hamano
2005-10-12[PATCH] cvsimport: don't pass --cvs-direct if user options contradict usMartin Langhoff
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>
2005-10-12Make git config variable names case-insensitiveLinus Torvalds
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>
2005-10-12Use git config file for committer name and email infoLinus Torvalds
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>
2005-10-12Export template_dir in Makefile.Tom Prince
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>
2005-10-12Use core.filemode.Junio C Hamano
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>
2005-10-11Improve config file escape sanity checkingLinus Torvalds
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>
2005-10-11show-branch: optionally use unique prefix as name.Junio C Hamano
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>
2005-10-11Support custom build options in config.makJohannes Schindelin
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>
2005-10-11Use git-update-ref and git-symbolic-ref in testsJohannes Schindelin
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>
2005-10-11Remove unused 'got_alternates' variable.Junio C Hamano
The function fetch_alternates() is called only once from the main now. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-11Use the same move_temp_to_file in git-http-fetch.Junio C Hamano
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>
2005-10-11Restore functionality to allow proxies to cache objectsNick Hengeveld
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>
2005-10-11[PATCH] Don't fetch objects that exist in the local repositoryNick Hengeveld
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>
2005-10-11Set the parallel HTTP request limit via an environment variableNick Hengeveld
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>
2005-10-11Only compile parallel HTTP support with CURL >= 7.9.8Nick Hengeveld
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>
2005-10-11Add support for parallel HTTP transfersNick Hengeveld
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>
2005-10-11Remove empty directories after read-tree -u.Junio C Hamano
This fixes everybody's favorite gripe that switching branche with 'git checkout' leaves empty directories. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Add ".git/config" file parserLinus Torvalds
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>
2005-10-10Merge branch 'fixes'Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10The synopsis of the manpages should use the hyphenated versionChristian Meder
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>
2005-10-10Convert usage of GIT and Git into gitChristian Meder
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>
2005-10-10Remove the version tags from the manpagesJunio C Hamano
Signed-off-by: Christian Meder <chris@absolutegiganten.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Make rsh.c use sq_quote_buf()H. Peter Anvin
Make rsh.c use sq_quote_buf() Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Trivial optimizationH. Peter Anvin
GIT_DIR_ENVIRONMENT is always a string literal Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Enhanced sq_quote()H. Peter Anvin
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>
2005-10-10t5400-send-pack relies on a working cpioJohannes Schindelin
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>
2005-10-10git.sh: quote all pathsJonas Fonseca
This makes it handle spaces in paths. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Teach git-status about spaces in file names also on MacOSXJohannes Schindelin
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>
2005-10-10Deal with $(bindir) and friends with whitespaces.Junio C Hamano
... using HPA's shellquote macro. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10OpenBSD needs the strcasestr replacement.Junio C Hamano
Noticed by Randal L. Schwartz. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Also force LC_ALL in test scripts.Junio C Hamano
Noticed by Junichi Uekawa. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Merge branch 'fixes'Junio C Hamano
with minor hand resolving on git-tag. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10git-tag: update usage string and documentation.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-10-10Write .editmsg in GIT_DIR to avoid being in git-status.Santi_Béjar
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>