summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2006-01-15show-branch: make the current branch and merge commits stand out.Junio C Hamano
This changes the character used to mark the commits that is on the branch from '+' to '*' for the current branch, to make it stand out. Also we show '-' for merge commits. When you have a handful branches with relatively long diversion, it is easier to see which one is the current branch this way. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-15Documentation: show-branch.Junio C Hamano
Describe showbranch.default configuration item and give an example. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14git-push: avoid falling back on pushing "matching" refs.Junio C Hamano
The underlying "git send-pack remote.host:path" pushes all the matching refs that both local and remote have, and "git push" blindly inherits this property. Which probably was a mistake. A typical cloned repository (e.g. a subsystem repository cloned from Linus repository) has at least two branches, "master" to keep the subsystem and "origin" that records tip of Linus "master" when the repository was cloned. If this is the public repository for the subsystem, then subsystem developers would clone it, and then cloned ones have "master" and "origin". When developers use this public subsystem repository as a shared repository, pushing into it via "git push subsys:/path/name" would try to push the matching refs, "master" and "origin", from the developers' repositories. The "origin" in the public shared repository does not have much relevance, yet pushing into "origin" would cause "not a fast forward" checks to be triggered. Arguably "git push subsys:/path/name master" would work it around, but having them to say it explicitly to avoid pushing into "origin" as well is bad. This commit requires you to give at least one refspec to git-push. You could "give" by either: (1) Listing the refspec(s) explicitly on the command line. E.g. "git push subsys:/path/name master". (2) Using --all or --tags on the command line. E.g. "git push --tags subsys:/path/name". (3) Using a $GIT_DIR/remotes shorthand with 'Push: refspec' line in it. Unlike pull that can happen pretty much promiscuously, people will push into the same set of a limited number of remote repositories repeatedly over the life of the project, so it is reasonable to assume they would want to keep a $GIT_DIR/remotes/ entry for those repositories even only to save typing the URL, so keeping the default 'Push: refspec' line in such is a sensible thing to do. It was suggested to further fall back on pushing the current branch, but this commit does not implement it. If developers adopt topic branch workflow, pushing to public while on a topic branch by mistake would expose the topic branch to the public repository. Not falling back to the current branch prevents that mistake from happening. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14checkout: merge local modifications while switching branches.Junio C Hamano
* Instead of going interactive, introduce a command line switch '-m' to allow merging changes when normal two-way merge by read-tree prevents branch switching. * Leave the unmerged stages intact if automerge fails, but reset index entries of cleanly merged paths to that of the new branch, so that "git diff" (not "git diff HEAD") would show the local modifications. * Swap the order of trees in read-tree three-way merge used in the fallback, so that `git diff` to show the conflicts become more natural. * Describe the new option and give more examples in the documentation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14checkout: automerge local changes while switching branches.Junio C Hamano
When switching branches, if the working tree has a local modification at paths that are different between current and new branches, we refused the operation saying "cannot merge." This attempts to do an automerge for such paths. This is still experimental. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14Merge fixes up to GIT 1.1.2Junio C Hamano
2006-01-14Fix the installation location.Junio C Hamano
The earlier change to separate $(gitexecdir) from $(bindir) had the installation location of the git wrapper and the rest of the commands the wrong way (right now, both of them point at the same location so there is no real harm). Also gitk needs to be installed in $(bindir). Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14Exec git programs without using PATH.Michal Ostrowski
The git suite may not be in PATH (and thus programs such as git-send-pack could not exec git-rev-list). Thus there is a need for logic that will locate these programs. Modifying PATH is not desirable as it result in behavior differing from the user's intentions, as we may end up prepending "/usr/bin" to PATH. - git C programs will use exec*_git_cmd() APIs to exec sub-commands. - exec*_git_cmd() will execute a git program by searching for it in the following directories: 1. --exec-path (as used by "git") 2. The GIT_EXEC_PATH environment variable. 3. $(gitexecdir) as set in Makefile (default value $(bindir)). - git wrapper will modify PATH as before to enable shell scripts to invoke "git-foo" commands. Ideally, shell scripts should use the git wrapper to become independent of PATH, and then modifying PATH will not be necessary. [jc: with minor updates after a brief review.] Signed-off-by: Michal Ostrowski <mostrows@watson.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-14GIT 1.1.2v1.1.2Junio C Hamano
2006-01-14GIT 1.0.10v1.0.10Junio C Hamano
2006-01-13Documentation: git-reset - interrupted workflow.Junio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-13Documentation: git-commit -aJunio C Hamano
A bit more elaboration on what "update all paths" means. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-13octopus: allow criss-cross and clarify the message when it rejectsJunio C Hamano
We rejected multi-base merge situations even though we used the same underlying multi-base git-read-tree as the resolve strategy uses. This was unneeded and did not add much to ensure the merge to be truly trivial, so remove this restriction and be more similar to what resolve does. Also when the merge did not trivially resolve, we rejected without stating that octopus strategy does not handle the situation. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-13Documentation: clarify fetch parameter descriptions.J. Bruce Fields
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-13Makefile: add 'strip' targetJunio C Hamano
This is not invoked by any other target (most notably, "make install" does not), but is provided as a convenience for people who are building from the source. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11show-branch: handle [] globs as well.Junio C Hamano
Earlier only '?' and '*' signalled the command that what the user has given is a glob pattern. This prevented us to say: $ git show-branch 'v0.99.[0-3]' Now we notice '[' as well, so the above would work. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11name-rev: do not omit leading components of ref name.Junio C Hamano
In a repository with mainto/1.0 (to keep maintaining the 1.0.X series) and fixo/1.0 (to keep fixes that apply to both 1.0.X series and upwards) branches, "git-name-rev mainto/1.0" answered just "1.0" making things ambiguous. Show refnames unambiguously like show-branch does. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11git-describe: default to HEADJunio C Hamano
This is based on the patch by Andreas Ericsson, but done slightly differently, preferring to have separate loops -- one for options and then arguments. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11describe: do not silently ignore indescribable commitsJunio C Hamano
We silently ignored indescribable commits without complaining. Complain and die instead. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11update-index: work with c-quoted nameJunio C Hamano
update-index --stdin did not work with c-style quoted names even though update-index --index-info did. This fixes the inconsistency. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11Add git-describe to .gitignore.Tom Prince
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11Add --keep option to keep downloaded packs to git-fetch.Tom Prince
Signed-off-by: Tom Prince <tom.prince@ualberta.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-11Merge fixes up to GIT 1.1.1Junio C Hamano
2006-01-11GIT 1.0.9v1.0.9Junio C Hamano
2006-01-11GIT 1.1.1v1.1.1Junio C Hamano
2006-01-11glossary: explain "master" and "origin"Johannes Schindelin
If you are a long time git user/developer, you forget that to a new git user, these words have not the same meaning as to you. [jc: with updates from J. Bruce Fields.] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-10show-branch: take default arguments from configuration file.Junio C Hamano
This lets showbranch.default multivalued configuration item to be used as the default set of parameters to git-show-branch when none is given on the command line. I keep many topic branches (e.g. zzz/pack, net/misc) and branches used only as a reference under subdirectories (e.g. hold/{html,man,todo} track the same from git.git, but clutters the show-branch output when shown along with the main development; ko/master tracks what I have pushed out already and refetched from the kernel.org server), and often run: $ git show-branch ko/master heads/* to view only the ko/master head and branches I keep immediately under $GIT_DIR/refs/heads. With this change, I can have this in my $GIT_DIR/config file: [showbranch] default = ko/master default = heads/* and say $ git show-branch Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-10GIT-VERSION-GEN: detect dirty tree and mark the version accordingly.Junio C Hamano
If we are building from a working tree with local modifications, mark the version accordingly. Deliberately uses '-' to prevent RPM from being built from such a tree. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-10For release tarballs, include the proper versionH. Peter Anvin
When producing a release tarball, include a "version" file, which GIT-VERSION-GEN can then use to do the right thing when building from a tarball. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08GIT 1.1.0v1.1.0Junio C Hamano
2006-01-08Add a test for rebase when a change was picked upstreamYann Dirson
This test exercises the standard feature that makes rebase useful. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08Add a minimal test for git-cherryYann Dirson
This test checks that git-cherry finds the expected number of patches in two simple cases, and then tests the new limit arguments. [jc: collapsed two patches into one and added sleep to make sure the two commits would get different timestamps] Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08Add an optional limit to git-cherryYann Dirson
This allows to use another commit than the merge base as a limit for scanning patches. [jc: part about t3500 test omitted.] Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08git-daemon --base-pathPetr Baudis
Tommi Virtanen expressed a wish on #git to be able to use short and elegant git URLs by making git-daemon 'root' in a given directory. This patch implements this, causing git-daemon to interpret all paths relative to the given base path if any is given. Signed-off-by: Petr Baudis <pasky@suse.cz> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08describe: allow more than one revs to be named.Junio C Hamano
The main loop was prepared to take more than one revs, but the actual naming logic wad not (it used pop_most_recent_commit while forgetting that the commit marks stay after it's done). Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08ls-files --others --directory: testJunio C Hamano
Add a test to run with --directory option. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08git-status: use ls-files --others --directory for untracked list.Junio C Hamano
This shortens "Untracked files" list by using --directory option when running ls-files --others. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08ls-files --others --directory: give trailing slashJunio C Hamano
This adds a trailing slash to directory names in the output when "--others --directory" option shows only untracked directories and not their contents, to make them stand out. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08ls-files --others --directory: fix a bug with index entry orderingJunio C Hamano
When both howto-index.sh and howto/make-dist.txt exist under Documentation/ directory, dir_exists() mistakenly checked it without the trailing slash to see if there was something under Documentation/howto directory, and did not realize there was, because '-' sorts earlier than '/' and cache_name_pos() finds howto-index.sh, which is not under howto/ directory. This caused --others --directory to show it which was incorrect. Check the directory name with the trailing slash, because having an entry that has such as a prefix is what we are looking for. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08ls-files -o: optionally skip showing the contents in "untracked" directoriesLinus Torvalds
Darrin Thompson notes that git-ls-files -o reports all the unknown files it finds in a work area. Subversion and probably other systems "simply ignore all the files and directories inside an unknown directory and just note the directory as unknown." With --directory option, ls-files --others shows untracked directories without descending into them. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08git-fetch: auto-following tags.Junio C Hamano
I added things to ls-remote so that Cogito can auto-follow tags easily and correctly a while ago, but git-fetch did not use the facility. Recently added git-describe command relies on repository keeping up-to-date set of tags, which made it much more attractive to automatically follow tags, so we do that as well. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08GIT 1.0.8v1.0.8Junio C Hamano
2006-01-08mailsplit: allow empty input from stdinJunio C Hamano
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08revert/cherry-pick: handle single quote in author name.Junio C Hamano
The same fix as aa66c7ec77d474b737da607d6cb2d07f56628def is needed here. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08Fix git-format-patch usage string wrt output modes.Yann Dirson
--stdout was not mentionned, and the description for the case where -o was not given was thus incomplete. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-08Fix typo in debug stanza of t2001Yann Dirson
Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-07tar-tree: finish honoring extractor's umask in git-tar-tree.Junio C Hamano
Earlier commit 38ec15a973a1f075f0d94d130b0ef279562921cd forgot to apply the same principle of not forcing go-w to the base directory when specified. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-07[PATCH] Compilation: zero-length array declaration.Junio C Hamano
ISO C99 (and GCC 3.x or later) lets you write a flexible array at the end of a structure, like this: struct frotz { int xyzzy; char nitfol[]; /* more */ }; GCC 2.95 and 2.96 let you to do this with "char nitfol[0]"; unfortunately this is not allowed by ISO C90. This declares such construct like this: struct frotz { int xyzzy; char nitfol[FLEX_ARRAY]; /* more */ }; and git-compat-util.h defines FLEX_ARRAY to 0 for gcc 2.95 and empty for others. If you are using a C90 C compiler, you should be able to override this with CFLAGS=-DFLEX_ARRAY=1 from the command line of "make". Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-07prune: do not show error from pack-redundant when no packs are found.Junio C Hamano
When there is no pack yet, git-prune leaked an error message from "git-pack-redundant --all" which complained that there is no pack. Squelch the annoying message. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-01-07Retire debian/ directory.Junio C Hamano
The official maintainer is keeping up-to-date quite well, and now the older Debian is supported with backports.org, there is no reason for me to keep debian/ directory around here. I have not been building and publishing debs since 1.0.4 anyway. Signed-off-by: Junio C Hamano <junkio@cox.net>