summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2005-11-26format-patch: output filename reported to stdout verbatim.Libravatar Junio C Hamano1-2/+2
Prepending asterisk to the output was just adding noise, and making scripts like proposed git-send-mail by Andreas Ericsson do unnecessary work. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25name-rev: fix off-by-one error in --stdin.Libravatar Junio C Hamano1-4/+3
It dropped the last hexdigit in the object name. [jc: Noticed and patch supplied by ALASCM, reworked to apply at the right place by me] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25git-mv is not able to handle big directoriesLibravatar Alexander Litvinov1-9/+22
Use update-index --stdin to handle large number of files without breaking exec() argument storage limit. [jc: with minor cleanup from the version posted on the list] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25shell.c: complain on insufficient arguments.Libravatar Junio C Hamano1-2/+1
Originally noticed by Tommi Virtanen, but done slightly differently. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25git-sh-setup: move the repository check to a core program.Libravatar Junio C Hamano1-7/+2
Any core commands that use setup_git_directory() now check if given GIT_DIR is really a valid repository, so the same check in git-sh-setup can use it without reimplementing it in shell. This commit changes git-sh-setup to use git-var command for that, although any other commands would do. Note that we export GIT_DIR explicitly when calling git-var; without it, the caller of this script would use GIT_DIR that we return (which is to assume ./.git unless the caller has it elsewhere) while git-var would go up to find a .git directory in our parent directories, which would be checking a different directory from what our callers will be using. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25setup_git_directory: make sure GIT_DIR is a valid repository.Libravatar Junio C Hamano1-5/+37
setup_git_directory() always trusted what the user told where GIT_DIR was, and assumed that is a valid .git/ directory. This commit changes it to at least do the same level validation as is_toplevel_directory() does -- has refs/, has objects/ unless GIT_OBJECT_DIRECTORY is set, and has valid HEAD symlink or symref. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25git-var: make it work in subdirectory.Libravatar Junio C Hamano1-0/+2
Use setup_git_directory() so that it can find its .git directory. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25git-sh-setup: die if outside git repository.Libravatar Junio C Hamano26-31/+34
Now all the users of this script detect its exit status and die, complaining that it is outside git repository. So move the code that dies from all callers to git-sh-setup script. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25parse-remote and ls-remote clean-up.Libravatar Junio C Hamano2-2/+3
There is no reason to use git-sh-setup from git-ls-remote. git-parse-remote can help the caller to use .git/remotes shortcut if it is run inside a git repository, but can still be useful outside a git repositoryas long as the caller does not use any shortcut. Use "git-rev-parse --git-dir" to figure out where the GIT_DIR is, instead of using git-sh-setup. This also makes "git-ls-remote origin" to work from inside a subdirectory of a git managed repository as a side effect. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25Prevent "git-commit -a path1 path2..."Libravatar Junio C Hamano1-1/+4
When you want to create a partial commit, giving -a by mistake would ignore the given path. Prevent it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25config.c: avoid shadowing global.Libravatar Junio C Hamano1-5/+5
This is purely cosmetic, but avoid shadowing "FILE *config_file" global in git_config_set_multivar() function. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25Fix a warning about unused value.Libravatar YOSHIFUJI Hideaki / 吉藤英明1-1/+1
Fix a warning: git.c:276: warning: value computed is not used Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-25cvsimport: Don't let local settings hinder cvs user-migration.Libravatar Andreas Ericsson1-1/+1
Avoid this by passing "--norc" to cvsps. Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-24Rename git-config-set to git-repo-configLibravatar Johannes Schindelin6-51/+51
... and adjust all references. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23diff-tree: teach single-commit diff-tree to honour graftsLibravatar Junio C Hamano1-29/+25
We used to read the commit objects by hand and ignored the grafts. Rewrite it using lookup_commit() API, to make it grafts-aware. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23Teach update-index to read from ls-tree.Libravatar Junio C Hamano2-6/+8
git-update-index --index-info can almost be usable to read from ls-tree output to update the index (and not the working tree file) to HEAD commit, but not quite. It was designed to read from git-apply --index-info output, and does not want " blob " in ls-tree output. Accept that as well. This lets us update "git-checkout <ent> <path>" that used to filter the extra " blob " string out. Noted by Luben. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23git-revert: make --edit default.Libravatar Junio C Hamano1-7/+11
Revert always should explain why, so make --edit the default, unless stdin is not a terminal. If you really don't want to say anything, you can say "git-revert --no-edit $commit", or if you are really sick, you could also say "git-revert $commit </dev/null". But please don't. You can also say "git-cherry-pick --edit $commit". Not editting the commit log message is the default for cherry-pick. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23Allow editing of a revert-messageLibravatar Linus Torvalds1-1/+5
I think all commit operations should allow editing of the message (ie we should do this for merges too), but that's _particularly_ true of doing a "git revert". We should always explain why we needed to revert something. This patch adds a "-e" or "--edit" flag to "git revert", although I actually suspect it should be on by default (and we should have a "--no-edit" flag to disable it, probably together with an automatic disable if stdin isn't a terminal). Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23Fix git-mv for moving directories with 1 fileLibravatar Josef Weidendorfer1-8/+17
This is fixed by putting the file into @changedfiles/@addedfiles, and not the directory this file is in. Additionally, this fixes the behavior for attempting to overwrite a file with a directory, and gives a message for all cases where overwriting is not possible (file->dir,dir->file,dir->dir). Thanks for Alexander Litvinov for noting this problem. Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23git-merge: make recursive the default strategyLibravatar Junio C Hamano1-8/+12
git-pull invoked merge with recursive as the default strategy for some time now; match it in the git-merge itself. Also avoid listing more than one strategy on default because we have only one strategy that can resolve an octopus and we are already counting heads here. This reduces the need to stash away local modifications. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-23pack-redundant: type cleanups.Libravatar Junio C Hamano1-10/+10
Binary representation of object names are unsigned char[20], not signed. Also verbose output had %lu format printing size_t without (unsigned long) cast other places already had, so match that. Using format %zu was suggested but might not be supported as widely. Noted by Morten Welinder, fixed with input from H. Peter Anvin and Hideaki Yoshifuji. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22Fixed git:// IPv4 address problem when compiled with -DNO_IPV6.Libravatar Paul Serice1-1/+1
Failure to dereference a pointer caused incorrect initialization of the IPv4 address when calling connect() when compiled with -DNO_IPV6. With this patch and yesterday's patch for git-daemon, it should now be possible to use the native git protocol for both the client and server on Cygwin. Signed-off-by: Paul Serice <paul@serice.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22arguments cleanup and some formattingLibravatar Alex Riesen1-7/+8
Signed-off-by: Alex Riesen <ariesen@harmanbecker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22remove unused variableLibravatar Alex Riesen1-2/+0
It is just assigned, nothing more. Signed-off-by: Alex Riesen <ariesen@harmanbecker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22speedup allocation in pack-redundant.cLibravatar Alex Riesen1-6/+26
Reuse discarded nodes of llists Signed-off-by: Alex Riesen <ariesen@harmanbecker.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22Make git-pack-redundant take a list of unimportant objs on stdinLibravatar Lukas Sandström1-0/+21
This lets us do "git-fsck-objects --full --unreachable | cut -d ' ' -f3 | git-pack-redundant --all", which will keep git-pack-redundant from keeping packs just because they contain unreachable objects. Also add some more --verbose output. Signed-off-by: Lukas Sandström <lukass@etek.chalmers.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-22Merge http://www.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-1/+5
2005-11-21git-var: constness and globalness cleanup.Libravatar Junio C Hamano3-9/+13
var.c::git_var read function did not have to return writable strings; make it and the functions it points at return const char * instead. ident.c::get_ident() did not need to be global, so make it static. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21Move diff.renamelimit out of default configuration.Libravatar Junio C Hamano8-9/+19
Otherwise we would end up linking all the unneeded stuff into git-daemon only to link with git_default_config. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21max-count in terms of intersectionLibravatar Luben Tuikov1-2/+3
When a path designation is given, max-count counts the number of commits therein (intersection), not globally. This avoids the case where in case path has been inactive for the last N commits, --max-count=N and path designation at git-rev-list is given, would give no commits. Signed-off-by: Luben Tuikov <ltuikov@yahoo.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21GIT: Fix compilation error in connect.cLibravatar YOSHIFUJI Hideaki / 吉藤英明1-4/+5
Fix compilation error for gcc-2.95. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21Introduce $(ALL_PROGRAMS) for 'all:' and 'install:' to operate on.Libravatar Andreas Ericsson1-13/+15
Remove $(SIMPLE_PROGRAMS) from $(PROGRAMS) so buildrules don't have to be overridden. Put $(SCRIPTS) with the other target-macros so it doesn't get lonely. Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21rename/copy score parsing updates.Libravatar H. Peter Anvin1-12/+21
Better variant, which handles stuff like "4.5%" and rejects "192.168.0.1". Additionally, make sure numbers are unsigned (I'm making them unsigned long just for the hell of it), to make sure that artificial wraparound scenarios don't cause harm. -hpa [jc: with this, -M100 changes its meaning back to 10%. People wanting to say "pure renames only" should now say -M100% or -M1.0; sounds a bit like an earthquake, but arguably things are more consistent this way ;-)] Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21git-daemon not listening when compiled with -DNO_IPV6Libravatar Paul Serice1-0/+6
git-daemon was not listening when compiled with -DNO_IPV6. socksetup() was not returning socket count when compiled with -DNO_IPV6. Signed-off-by: Paul Serice <paul@serice.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21git-repack: Properly abort in corrupt repositoryLibravatar Linus Torvalds2-2/+2
In a corrupt repository, git-repack produces a pack that does not contain needed objects without complaining, and the result of this combined with -d flag can be very painful -- e.g. a lossage of one tree object can lead to lossage of blobs reachable only through that tree. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21Allow hierarchical section namesLibravatar Johannes Schindelin2-9/+29
A .git/config like follows becomes valid with this patch: [remote.junio] url = git://git.kernel.org/pub/scm/git/git.git pull = master:junio todo:todo +pu:pu [remote.ibook] url = ibook:git/ pull = master:ibook push = master:quetzal (This patch only does the ini file thing, git-fetch and friends still ignore these values). Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21git-config-set: Properly terminate strings with '\0'Libravatar Johannes Schindelin2-0/+2
When a lowercase version of the key was generated, it was not terminated. Strangely enough, it worked on Linux and macosx anyway. Just cygwin barfed. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21git-proxy updates.Libravatar Junio C Hamano1-7/+45
This builds on top of the git-proxy mechanism Paul Collins did, and updates its configuration mechanism. * GIT_PROXY_COMMAND environment variable is used as the catch-all fallback, as in the original. This has not changed. * Renames proxy configuration variables to core.gitproxy; this has become a multi-value variable per list discussion, most notably from suggestion by Linus. [core] ;# matches www.kernel.org as well gitproxy = netcatter for kernel.org gitproxy = netscatter for sample.xz gitproxy = none for mydomain.xz gitproxy = netcatter-default The values are command names, followed by an optional " for " and domainname; the first tail-match of the domainname determines which proxy command is used. An entry without " for " matches any domain and can be used as the default. The command name "none" is special -- it tells the mechanism not to use any proxy command and use the native git:// connection. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21proxy-command support for git://Libravatar Paul Collins1-1/+71
Here is an updated patch that first looks for GIT_PROXY_COMMAND in the environment and then git.proxycommand in the repository's configuration file. I have left the calling convention the same argv[1] is the host and argv[2] is the port. I've taken the hostname parsing verbatim from git_tcp_connect(), so it should now support an explicit port number and whatever that business with the square brackets is. (Should I move this to a helper function?) Regarding internal vs. external hosts, the proxy command can simply run netcat locally to internal hosts, so perhaps that is sufficient. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21daemon: further tweaks.Libravatar Junio C Hamano2-18/+14
- Do validation only on canonicalized paths - Run upload-pack with "." as repository argument Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21git-daemon support for user-relative paths.Libravatar Andreas Ericsson3-87/+72
Dropped a fair amount of reundant code in favour of the library code in path.c Added option --strict-paths with documentation, with backwards compatibility for whitelist entries with symlinks. Everything that worked earlier still works insofar as I have remembered testing it. Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21tutorial: setting up a tree for subsystem maintainersLibravatar Junio C Hamano1-1/+4
The "copying over packs" step is to prevent the objects available in upstream repository to get expanted in the subsystem maintainer tree, and is still valid if the upstream repository do not live on the same machine. But if they are on the same machine using objects/info/alternates is cleaner. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21rename detection with -M100 means "exact renames only".Libravatar Junio C Hamano2-0/+7
When the user is interested in pure renames, there is no point doing the similarity scores. This changes the score argument parsing to special case -M100 (otherwise, it is a precision scaled value 0 <= v < 1 and would mean 0.1, not 1.0 --- if you do mean 0.1, you can say -M1), and optimizes the diffcore_rename transformation to only look at pure renames in that case. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21format-patch: fix two-argument special case, and make it easier to pick ↵Libravatar Junio C Hamano1-2/+3
single commits Luben Tuikov noticed that sometimes being able to say 'git-format-patch <commit>' to format the change a single commit introduces relative to its parent is handy. This patch does not support that directly, but it makes sense to interpret a single argument "rev" to mean "rev^1..rev". With this, the backward compatibility syntaxes still apply: - "format-patch master" means "format-patch master..HEAD" - "format-patch origin master" means "format-patch origin..master" - "format-patch origin.." means "format-patch origin..HEAD" But "format-patch a b c d e" formats the changes these five commits introduce relative to their respective parents. Earlier it rejected these arguments not in "one..two" form. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21Fix hooks/update template.Libravatar Junio C Hamano1-4/+3
Make the example address RFC2606 (aka BCP0032) compliant. Also fix a couple of shell script errors. Noted and fixed by Matthew Wilcox and Andreas Ericsson. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-21Make sure heads/foo and tags/foo do not confuse things.Libravatar Junio C Hamano2-6/+24
When both heads/foo and tags/foo exist, get_sha1_basic("foo") picked up the tag without complaining, which is quite confusing. Make sure we require unambiguous form, "heads/foo" or "tags/foo" in such cases. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20Fix "do not DWIM" patch to enter_repo"Libravatar Junio C Hamano1-1/+1
We wanted --strict to mean "do not DWIM", but the code required to see absolute path. daemon does its own path verification and chdirs to the verified repository, so enter_repo() called from upload-pack will always enter ".". Requiring absolute path does not make any sense. Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20git-reset.txt: Small fix + clarifications.Libravatar Andreas Ericsson1-4/+15
This basically translates the man-page from 'git-developerish' to plain english, adding some almost-sample output from git-status so users can recognize what will happen. Also mention explicitly that --mixed updates the index, while --soft doesn't. I understood the old text to mean "--mixed is exactly like --soft, but verbose". Signed-off-by: Andreas Ericsson <ae@op5.se> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20Add Python version checks to the Makefile to automatically set ↵Libravatar Ryan Anderson1-10/+15
WITH_OWN_SUBPROCESS_PY Also rearrange some path settings in the Makefile in the process. Signed-off-by: Ryan Anderson <ryan@michonline.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-11-20Fix sparse warningsLibravatar Timo Hirvonen4-32/+31
Make some functions static and convert func() function prototypes to to func(void). Fix declaration after statement, missing declaration and redundant declaration warnings. Signed-off-by: Timo Hirvonen <tihirvon@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>