aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge branch 'fixes'Junio C Hamano2005-10-15
|\
| * tutorial: update the initial commit example.Junio C Hamano2005-10-13
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * Adapt tutorial to cygwin and add test caseJohannes Schindelin2005-10-13
| | | | | | | | | | | | | | | | | | | | | | | | Lacking reliable symlinks, the instructions in the tutorial did not work in a cygwin setup. Also, a few outputs were not correct. This patch fixes these, and adds a test case which follows the instructions of the tutorial (except git-clone, -fetch and -push, which I have not done yet). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * rsh.c: typo fixRalf Baechle2005-10-13
| | | | | | | | | | | | | | Example in a comment used a wrong environment variable. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Show curl error a bit better.Junio C Hamano2005-10-15
| | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Some curl versions lack curl_easy_duphandle()Johannes Schindelin2005-10-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hi, On Fri, 14 Oct 2005, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: > > > This patch looks bigger than it really is: The code to get the > > default handle was refactored into a function, and is called > > instead of curl_easy_duphandle() if that does not exist. > > I'd like to take Nick's config file patch first, which > unfortunately interferes with your patch. I'd hate to ask you > this, but could you rebase it on top of Nick's patch, [...] No need to hate it. Here comes the rebased patch, and this time, I actually tested it a bit. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Unlocalized isspace and friendsLinus Torvalds2005-10-14
| | | | | | | | | | | | | | | | | | Do our own ctype.h, just to get the sane semantics: we want locale-independence, _and_ we want the right signed behaviour. Plus we only use a very small subset of ctype.h anyway (isspace, isalpha, isdigit and isalnum). Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Use config file settings for httpNick Hengeveld2005-10-14
| | | | | | | | | | | | | | | | Use "http." config file settings if they exist. Environment variables still work, and they will override config file settings. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | git-http-fetch: Remove size limit for objects/info/{packs,alternates}Sergey Vlasov2005-10-14
| | | | | | | | | | | | | | | | | | | | | | git-http-fetch received objects/info/packs into a fixed-size buffer and started to fail when this file became larger than the buffer. Change it to grow the buffer dynamically, and do the same thing for objects/info/alternates. Also add missing free() calls for these buffers. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | debian packagingAneesh Kumar2005-10-14
| | | | | | | | | | | | Make it build with stable testing and unstable. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Support git+ssh:// and ssh+git:// URLLinus Torvalds2005-10-14
| | | | | | | | | | | | | | | | | | | | | | It seemed to be such a stupid syntax. It's both what "ssh://" means, and it's what not specifying a protocol at _all_ means. But hey, since we already have two ways of saying "use ssh with pack-files", here's two more. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add new programs and stamp file to .gitignore.Tom Prince2005-10-14
| | | | | | | | | | Signed-off-by: Tom Prince <tom.prince@ualberta.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | format-patch: take sequence of ranges.Junio C Hamano2005-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Add "-l" flag for repacking only local packsLinus Torvalds2005-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Add support for "local" packingLinus Torvalds2005-10-13
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Keep track of whether a pack is local or notLinus Torvalds2005-10-13
| | | | | | | | | | | | | | | | 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>
* | git-am: do not fail if 3-way fallback succeeds.Junio C Hamano2005-10-13
| | | | | | | | | | | | The current one incorrectly stops there without committing. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Add findtags - reworkedMartin Langhoff2005-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Revert "Also use 'track_object_refs = 0' in update-server-info."Sergey Vlasov2005-10-13
| | | | | | | | | | | | | | | | | | | | | | 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>
* | clone-pack: new option --keep tells it not to explode the pack.Junio C Hamano2005-10-12
| | | | | | | | | | | | | | | | | | | | | | 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>
* | clone-pack: new option --keep tells it not to explode the pack.Junio C Hamano2005-10-12
| | | | | | | | | | | | | | | | | | 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>
* | Fix packname hash generation.Junio C Hamano2005-10-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-12
| | | | | | | | | | | | | | | | | | | | 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-12
| | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | "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-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-11
|\ \ | |/
| * [PATCH] cvsimport: don't pass --cvs-direct if user options contradict usMartin Langhoff2005-10-11
| | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | | | | | | | | | 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-11
| | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-10
|\ \ | |/ | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * t5400-send-pack relies on a working cpioJohannes Schindelin2005-10-10
| | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | | | | | 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-10
| | | | | | | | | | | | Noticed by Randal L. Schwartz. Signed-off-by: Junio C Hamano <junkio@cox.net>