AgeCommit message (Collapse)Author
2005-08-17[PATCH] Also handle CVS branches with a '/' in their nameJohannes Schindelin
I track a CVS project which has a branch with a '/' in the branch name. Since git wants the branch name to be a file name at the same time, substitute that character to a '-' by default (override with "-s <subst>"). This should work well, despite the fact that a division and a difference are completely different :-) Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] When copying or renaming, keep the mode, pleaseJohannes Schindelin
Without this patch, git-apply does not retain the mode when renaming or copying files. [jc: Good catch, Johannes. I added a test case to demonstrate the breackage in the original.] Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Change git-branch to list branchesKalle Valo
If no argument provided to `git branch`, show available branches and mark current branch with star. This is based on patch written by Amos Waterland <>. [jc: and I changed it to handle subdirectories under refs/heads/ as well.] Signed-off-by: Kalle Valo <> Signed-off-by: Junio C Hamano <>
2005-08-17git-commit: pass explicit path to git-diff-files.Junio C Hamano
When running "git commit" with explicit path arguments, allow it to take directory name. This makes "git commit Documentation/" to commit everything that is changed under Documentation/ directory. Signed-off-by: Junio C Hamano <>
2005-08-17Pass options to underlying git-rev-list from show-branches.Junio C Hamano
This lets you say "git show-branches --max-count=30". Signed-off-by: Junio C Hamano <>
2005-08-17Add --symbolic flag to git-rev-parse.Junio C Hamano
This is most useful with --all, --revs-only, --no-flags and --verify. Signed-off-by: Junio C Hamano <>
2005-08-17Add graft support.Paul Mackerras
We read .git/info/grafts and use the information in there to override the list of parents we get from git-rev-list or git-cat-file.
2005-08-17Teach applymbox to keep the Subject: line.Junio C Hamano
This corresponds to the -k flag to git format-patch --mbox option. The option should probably not be used when applying a real e-mail patch, but is needed when format-patch and applymbox pair is used for cherrypicking. Signed-off-by: Junio C Hamano <>
2005-08-17Use LF and allow comments in objects/info/alternates file.Junio C Hamano
Yes, using the same format for the file and the environment variable was a big mistake. This uses LF as the path separator, and allows lines that begin with '#' to be comments. ':' is no longer a separator in objects/info/alternates file. Signed-off-by: Junio C Hamano <>
2005-08-17git-format-patch fixes.Junio C Hamano
Introduces --keep-subjects flag to tell it not to munge the first line of the commit message. Running "git applymbox" on the output from "git format-patch -m -k" would preserve the original commit information better this way. At the same time, prefix Subject: on the first line of the commit, to help people cut&copy. Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Improve handling of "." and ".." in git-diff-*Linus Torvalds
This fixes up usage of ".." (without an ending slash) and "." (with or without the ending slash) in the git diff family. It also fixes pathspec matching for the case of an empty pathspec, since a "." in the top-level directory (or enough ".." under subdirectories) will result in an empty pathspec. We used to not match it against anything, but it should in fact match everything. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Fix test failure due to overly strict .git directory testsLinus Torvalds
We may not actually have a valid HEAD at all times, so relax the validity tests for a .git subdirectory accordingly. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Make "git diff" work inside relative subdirectoriesLinus Torvalds
We always show the diff as an absolute path, but pathnames to diff are taken relative to the current working directory (and if no pathnames are given, the default ends up being all of the current working directory). Note that "../xyz" also works, so you can do cd linux/drivers/char git diff ../block and it will generate a diff of the linux/drivers/block changes. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Add a bit more links to the commands to the main git(7) page.Junio C Hamano
There are many programs like git-add not described at all, and the organization of the list of commands may be suboptimal, but we have to start somewhere. Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Reformat git-show-branches-script documentation.Junio C Hamano
... using ListingBlock of asciidoc. Signed-off-by: Junio C Hamano <>
2005-08-17[PATCH] Make do_each_ref() follow symlinks.Matt Draisey
Because there is no reason not to, and this makes things a bit safer when running "git prune". [jc: I do not necessarily agree with the reasoning of the original author that it is a good way to keep "git prune" from stomping on objects to have a symlink that points at .git/refs of the repository A in the .git/refs of the repository B when repository A borrows object database from repository B. For one thing, the object database that everybody borrows objects from may not even have its own .git/refs hierarchy. Come to think of it, maybe we should disallow symlink inside .git/refs hierarchy; we update the files there by creat/rename pair, so having symlinks would not work anyway when you do anything that would update them.] Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Add -k kill keyword expansion option to git-cvsimport - revisedMartin Langhoff
Early versions of git-cvsimport defaulted to using preexisting keyword expansion settings. This change preserves compatibility with existing cvs imports and allows new repository migrations to kill keyword expansion. After exploration of the different -k modes in the cvs protocol, we use -kk which kills keyword expansion wherever possible. Against the protocol spec, -ko and -kb will sometimes expand keywords. Should improve our chances of detecting merges and reduce imported repository size. Signed-off: Martin Langhoff <> Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Fix local pull that uses packs.Junio C Hamano
The patch mixed up the sha1 for the object being pulled, and the sha1 the pull engine internally use to represent the name of the pack that contains the object being pulled. Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Support packs in local-pullDaniel Barkalow
If it doesn't find an object, it looks for an index that contains it and uses the same methods on that instead. Signed-off-by: Daniel Barkalow <> Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Add function to read an index file from an arbitrary filename.Daniel Barkalow
Note that the pack file has to be in the usual location if it gets installed later. Signed-off-by: Daniel Barkalow <> Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Fixed two bugs in git-cvsimport-script.iso-8859-1?Q?David_K=E5gedal
The git-cvsimport-script had a copule of small bugs that prevented me from importing a big CVS repository. The first was that it didn't handle removed files with a multi-digit primary revision number. The second was that it was asking the CVS server for "F" messages, although they were not handled. I also updated the documentation for that script to correspond to actual flags. Signed-off-by: David K?5gedal <> Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] cvsgit fixes: spaces in filenames and CVS server dialog woesMatthias Urlichs
Problems found while importing dasher's CVS: * Allow spaces in filenames. * cvsps may create unnamed branches with revisions that don't really exist, which causes the CVS server to return something we haven't hitherto expected. * Report deleted files when being verbose. * Also, report the commit date. Signed-off-by: Junio C Hamano <>
2005-08-16Make tools use DESTDIR as well (otherwise rpm build is broken).Chris Wright
Signed-off-by: Chris Wright <> Signed-off-by: Junio C Hamano <>
2005-08-16[PATCH] Make git-format-patch's signoff option more consistentJohannes Schindelin
Since git-commit-script has a "--signoff" option, use that in git-format-patch-script, too (and since partial option names are supported,"--sign" is still valid). Also, if the message already contains the S-O-B line, silently ignore the "--signoff" request. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2005-08-15Tentative fix to git-commit-scriptJunio C Hamano
The recent change to give the multiple commit message source was not carrying over the authorship information from -C/-c commits correctly. The export of the environment variable happens only in the subprocess, not the main process that eventually runs git-commit-tree. The right fix might be to teach git-commit-script to grok the From: and Date: lines at the beginning of the commit message just like git-applymbox knows how, but this has to do until that enhancement happens. Signed-off-by: Junio C Hamano <>
2005-08-15[PATCH] Add documentation for git repack and git-prune-packed.Junio C Hamano
[jc: the patch forgot to update the main git.txt documentation, making all these new documentation practically no-op, so I added a minimum attempt linking them from there.] Signed-off-by: Ryan Anderson <>
2005-08-15[PATCH] clean up git scriptJunio C Hamano
Makes git work with a pure POSIX shell (tested with bash --posix and ash). Right now git causes ash to choke on the redundant shift on line two. Reduces the number of system calls git makes just to do a usage statement from 22610 to 1122, and the runtime for same from 349ms to 29ms on my x86 Linux box. Presents a standard usage statement, and pretty prints the available commands in a form that does not scroll off small terminals. [jc: while shifting when $# was zero was a bug, the original patch failed to shift when it needs to, which I fixed up.] Signed-off-by: Amos Waterland <> Signed-off-by: Junio C Hamano <>
2005-08-15Audit rev-parse users.Junio C Hamano
Make sure that we say --verify when we want to get a single SHA1 name. Also when we say --verify, --revs-only is redundant. Signed-off-by: Junio C Hamano <>
2005-08-15Keep excellent tutorial for using topic branches by Tony LuckJunio C Hamano
I would eventually like to move this to become a part of the tutorial, but anyway, this was an excellent post that describes how topic branches can be used to keep track of local changes.
2005-08-15[PATCH] Run Ispell through git.txtYasushi SHOJI
Signed-off-by: Yasushi SHOJI <> Signed-off-by: Junio C Hamano <>
2005-08-15Show which branch you are on in git-status output.Junio C Hamano
When not on the "master" branch, show which branch we are working on in the git-status message. Signed-off-by: Junio C Hamano <>
2005-08-15Add git-show-branches-scriptJunio C Hamano
Often I find myself wanting to do quick branches check when I am not in the windowing environment and cannot run gitk. This stupid script shows commits leading to the heads of interesting branches with indication which ones belong to which branches, so that fork point is somewhat discernible without using gitk. Signed-off-by: Junio C Hamano <>
2005-08-15[PATCH] Add some simple howtos, culled from the mailing list.Ryan Anderson
I think these are useful, and I think putting them in a new "howto" directory might help some users until we get to the point of splitting up the tutorial to be easier to read. Given the authorship, I think it's safe to put these in the repository. Signed-off-by: Ryan Anderson <>
2005-08-15[PATCH] Fixed/Extended example for update hookJosef Weidendorfer
Add sample code to distinguish --force rebased head and simple fast-forward. At the same time fixes a real bug; the "new ref" path was using a wrong parameter. Signed-off-by: Junio C Hamano <>
2005-08-15Add cheap local clone '-s' flag to git-clone-scriptJunio C Hamano
Using the $GIT_OBJECT_DIRECTORY/info/alternates mechanism, create a new repository that borrows objects from the original repository when --shared flag is given in addition to --local. It is worth pointing out that the "cloned" repository depends on the original repository, so this should be used only when you can reasonably trust that the original repository would not disappear without your knowing. Signed-off-by: Junio C Hamano <>
2005-08-15Alternate object pool mechanism updates.Junio C Hamano
It was a mistake to use GIT_ALTERNATE_OBJECT_DIRECTORIES environment variable to specify what alternate object pools to look for missing objects when working with an object database. It is not a property of the process running the git commands, but a property of the object database that is partial and needs other object pools to complete the set of objects it lacks. This patch allows you to have $GIT_OBJECT_DIRECTORY/info/alternates whose contents is in exactly the same format as the environment variable, to let an object database name alternate object pools it depends on. Signed-off-by: Junio C Hamano <>
2005-08-15Documentation updates.Junio C Hamano
Linus brought up that documentation for many commands have incorrect attribution. I started counting lines again, but ended up adding a handful of missing manual pages. Signed-off-by: Junio C Hamano <>
2005-08-14[PATCH] plug memory leak in diff.c::diff_free_filepair()Yasushi SHOJI
When I run git-diff-tree on big change, it seems the command eats so much memory. so I just put git under valgrind to see what's going on. diff_free_filespec_data() doesn't free diff_filespec itself. [jc: I ended up doing things slightly differently from Yasushi's patch. The original idea was to use free_filespec_data() only to free the data portion and keep useing the filespec itself, but no existing code seems to do things that way, so I just yanked that part out.] Signed-off-by: Yasushi SHOJI <> Signed-off-by: Junio C Hamano <>
2005-08-14[PATCH] fix null TZ problems on os/xBrad Roberts
It seems that the localtime() libc routine doesn't care for finding a TZ that's empty. It's ok with TZ not being set. Setting the TZ to GMT allowed these tests to pass. $ uname -v Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC Signed-off-by: Brad Roberts <> Signed-off-by: Junio C Hamano <>
2005-08-14[PATCH] fix git-checkout-cache segfault on pariscJames Bottomley
The index cleanup code is executed via atexit() which is *after* main has completed, so the stack allocated cache_file has gone out of scope. Parisc seems to use stack in the destructor functions, so cache_file gets partially overwritten leading to the predictable disastrous consequences. [jc: Just to make sure, I audited other users of the function hold_index_file_for_update() to make sure they do not have this problem; everybody else uses non-stack cache_file structure and is fine. Thanks, James.] Signed-off-by: James Bottomley <> Signed-off-by: Junio C Hamano <>
2005-08-14[PATCH] Make get_sha1_basic() more carefulLinus Torvalds
The "get_sha1_hex()" function is designed to work with SHA1 hex strings that may be followed by arbitrary crud. However, that's not acceptable for "get_sha1()" which is used for command line arguments etc: we don't want to silently allow random characters after the end of the SHA1. So verify that the hex string is all we have. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-14[PATCH] Make sure git-resolve-script always works on commitsLinus Torvalds
You can resolve a tag, and it does the right thing except that it might end up writing the tag itself into the resulting HEAD, which will confuse subsequent operations no end. This makes sure that when we resolve two heads, we will have turned them into proper commits before we start acting on them. This also fixes the parsing of "treeish^0", which would incorrectly resolve to "treeish" instead of causing an error. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-14Add SubmittingPatchesJunio C Hamano
Not that I have stricter patch submission standard than ordinary projects, I wanted to have it to make sure people understand what they are doing when they add their own Signed-off-by line. Signed-off-by: Junio C Hamano <>
2005-08-14Add --signoff and --verify option to git commit.Junio C Hamano
As brought up in the discussion which followed a patch to add a signed-off-by line with the --sign flag to format-patch from Johannes Schindelin, add --signoff to the git commit command. Also add --verify to make sure the lines you introduced are clean, which is more useful in commit but not very much in format-patch as it was originally implemented, because finding botches at format-patch time is too late. Signed-off-by: Junio C Hamano <>
2005-08-13Debianization updatesMatthias Urlichs
git-tk should be architecture independent. git-core forgot to depend on perl. Signed-Off-By: Matthias Urlichs <> Signed-off-by: Junio C Hamano <>
2005-08-12Fix debianization: mark git-tk architecture neutral.Junio C Hamano
Signed-off-by: Junio C Hamano <>
2005-08-12Adjust binary packaging to dest=>DESTDIR change.Junio C Hamano
Signed-off-by: Junio C Hamano <>
2005-08-12Make tools/ directory first-class citizen.Junio C Hamano
Tools directory being separate is just a historical coincidence. Build and install together with the main directory, just like the clean target does. Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Unify Makefile indentationPetr Baudis
Use <tab> instead of two spaces uniformly in the Makefile, even in the ifdefs. Gives it a nice consistent look. [jc: At the same time I indented the nested ifdefs to make them slightly easier to read.] Signed-off-by: Petr Baudis <> Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Use $DESTDIR instead of $destPetr Baudis
$DESTDIR is more usual during the build than $dest and is what is usually used in the makefiles, so let's use it too. Signed-off-by: Petr Baudis <> Signed-off-by: Junio C Hamano <>