AgeCommit message (Collapse)Author
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 <>
2005-08-12Make CFLAGS overridable from make command line.Pavel Roskin
This patch renames COPTS to CFLAGS, because it's COPTS that was user overridable. Also, -Wall is moved there because it's optional. What was CFLAGS is now ALL_CFLAGS, which users should not override. Defines are added to DEFINES. Since ALL_CFLAGS is recursively expanded, it uses the final value of DEFINES. Implicit rules are made explicit since the implicit rules use CFLAGS rather than ALL_CFLAGS. I believe that serious projects should not rely on implicit rules anyway. Percent rules are used because they are used already and because they don't need the .SUFFIXES target. [jc: in addition to updating the patch for 0.99.4, I fixed up a glitch in Pavel's original patch which compiled sha1.o out of mozilla-sha1/sha1.c, where it should have left the resulting object file in mozilla-sha1 directory for later "ar".] Signed-off-by: Pavel Roskin <> Signed-off-by: Junio C Hamano <>
2005-08-12Clean generated files a bit more, to cope with Debian build droppings.Junio C Hamano
Also attempt to build a source package for debian.
2005-08-12[PATCH] Add "--sign" option to git-format-patch-scriptJohannes Schindelin
This adds the option "--sign" to git-format-patch-script which adds a Signed-off-by: line automatically. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2005-08-12fetch-pack: start multi-head pulling.Junio C Hamano
This is a beginning of resurrecting the multi-head pulling support for git-fetch-pack command. The git-fetch-script wrapper still only knows about fetching a single head, without renaming, so it is not very useful unless you directly call git-fetch-pack itself yet. It also fixes a longstanding obsolete description of how the command discovers the list of local commits.
2005-08-12Update unpack-objects usage and documentation.Junio C Hamano
It long supported -q flag to suppress progress meter without properly being documented.
2005-08-12[PATCH] Also parse objects we already haveDaniel Barkalow
In the case where we don't know from context what type an object is, but we don't have to fetch it, we need to parse it to determine the type before processing it. Signed-off-by: Daniel Barkalow <> Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Fix parallel pull dependancy tracking.Daniel Barkalow
It didn't refetch an object it already had (good), but didn't process it, either (bad). Synchronously process anything you already have. Signed-off-by: Daniel Barkalow <> Signed-off-by: Junio C Hamano <>
2005-08-12Clean generated deb files.Junio C Hamano
Do not forgot that we have a separate git-tk package these days. Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Trapping exit in tests, using return for errors: further fixes.Pavel Roskin
"return" from a test would leave the exit trap set, which could cause a spurious error message if it's the last test in the script or --immediate is used. The easiest solution would be to have a global trap that is set when is sourced and unset either by test_done(), error() or by test_failure_() with --immediate. Signed-off-by: Pavel Roskin <> Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Trapping exit in tests, using return for errorsPavel Roskin
I have noticed that "make test" fails without any explanations when the "merge" utility is missing. I don't think tests should be silent in case of failure. It turned out that the particular test was using "exit" to interrupt the test in case of an error. This caused the whole test script to exit. No further tests would be run even if "--immediate" wasn't specified. No error message was printed. This patch does following: All instances of "exit", "exit 1" and "(exit 1)" in tests have been replaced with "return 1". In fact, "(exit 1)" had no effect. File descriptor 5 is duplicated from file descriptor 1. This is needed to print important error messages from tests. New function test_run_() has been introduced. Any "return" in the test would merely cause that function to return without skipping calls to test_failure_() and test_ok_(). The new function also traps "exit" and treats it like a fatal error (in case somebody reintroduces "exit" in the tests). test_expect_failure() and test_expect_success() check both the result of eval and the return value of test_run_(). If the later is not 0, it's always a failure because it indicates the the test didn't complete. Signed-off-by: Pavel Roskin <> Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Need to set PAGER in testsPavel Roskin
" --verbose" stops waiting for user input. It happens because "git log" uses less for output now. To prevent this, PAGER should be set to cat. Signed-off-by: Pavel Roskin <> Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Missing test_donePavel Roskin
All test scripts should end with test_done, which reports the test results. In the future, it could be used for other purposes, e.g. to distinguish graceful end from "exit" in a test. This patch fixes scripts that don't call test_done. Signed-off-by: Pavel Roskin <> Signed-off-by: Junio C Hamano <>
2005-08-12String comparison of test is done with '=', not '=='.Junio C Hamano
Caught this during a test setting /bin/sh to (d)ash. Signed-off-by: Junio C Hamano <>
2005-08-12Debian packaging fixes.Matthias Urlichs
- Split gitk off to its own package; it needs tk installed, but nothing else does. - Refer to GPL properly, don't install COPYING. - Fix maintainer. - Use dh_movefiles instead of dh_install; we don't want to list everything *except* gitk. Signed-off-by: Junio C Hamano <>
2005-08-12merge-base.c: pathological case fix.Junio C Hamano
Also add some illustration requested by Linus. Signed-off-by: Junio C Hamano <>
2005-08-12[PATCH] Speed up git-merge-base a lotLinus Torvalds
In commit 4f7eb2e5a351e0d1f19fd4eab7e92834cc4528c2 I fixed git-merge-base getting confused by datestamps that caused it to traverse things in a non-obvious order. However, my fix was a very brute-force one, and it had some really horrible implications for more complex trees with lots of parallell development. It might end up traversing all the way to the root commit. Now, normally that isn't that horrible: it's used mainly for merging, and the bad cases really tend to happen fairly rarely, so if it takes a few seconds, we're not in too bad shape. However, gitk will also do the git-merge-base for every merge it shows, because it basically re-does the trivial merge in order to show the "interesting" parts. And there we'd really like the result to be instantaneous. This patch does that by walking the tree more completely, and using the same heuristic as git-rev-list to decide "ok, the rest is uninteresting". In one - hopefully fairly extreme - case, it made a git-merge-base go from just under five seconds(!) to a tenth of a second on my machine. Signed-off-by: Linus Torvalds <> Signed-off-by: Junio C Hamano <>
2005-08-12Merge with gitk.Junio C Hamano
This merges commit b664550c066810b770ad3e19cafe2fbdd42c6793 from gitk into our head commit bf570303153902ec3d85570ed24515bcf8948848 Sincerely, jit-merge command.
2005-08-10Refine the update heuristic to improve responsiveness a bit.Paul Mackerras
The previous commit improved performance a lot but also meant that we waited longer to see something drawn. This refines the heuristics for when to call update so that (1) when we have finished processing a bufferfull of information from git-rev-list, we call update if enough time has elapsed, regardless of how many commits we've drawn, and (2) the number of commits drawn between updates scales with the total number of commits drawn: 1 for 1-99 commits, 10 for 100-9999 commits, or 100 for >= 10000 commits.
2005-08-10GIT 0.99.4.v0.99.4Junio C Hamano
Mark it official. Finally. Signed-off-by: Junio C Hamano <>
2005-08-10Merge with master.Junio C Hamano
This merges commit e8c80638abc99928dba9ac832589749a531e2e21 from master into our head commit bdb71a41caa9ffed2e3207736c21fffbc2007670 Sincerely, jit-merge command.
2005-08-10Merge with gitk.Junio C Hamano
This merges commit 466e4fdd6696c89700294e1a54fa73e1fb94643b from gitk into our head commit ef0bd2e6e643f09a8294937caf99463328b9215a Sincerely, jit-merge command.
2005-08-10Merge with master.Junio C Hamano
This merges commit ef0bd2e6e643f09a8294937caf99463328b9215a from master into our head commit f69714c38c6f3296a4bfba0d057e0f1605373f49 Sincerely, jit-merge command.
2005-08-10[PATCH] Fix git-rev-parse's parent handlingJohannes Schindelin
git-rev-parse HEAD^1 would fail, because of an off-by-one bug (but HEAD^ would yield the expected result). Also, when the parent does not exist, do not silently return an incorrect SHA1. Of course, this no longer applies to git-rev-parse alone, but every user of get_sha1(). While at it, add a test. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
2005-08-10Only do an update every 100 commits when drawing the graph.Paul Mackerras
On a large repository with > 60,000 commits, each call to the Tk update primitive (which gives Tk a chance to respond to events and redraw the screen) was taking up to 0.2 seconds. Because the logic was to call update after drawing a commit if 0.1 seconds had passed since the last update call, we were calling it for every commit, which was slowing us down enormously. Now we also require that we have drawn 100 commits since the last update (as well as it being at least 0.1 seconds since the last update). Drawing 100 commits takes around 0.1 - 0.2 seconds (even in this large repo) on my G5.
2005-08-10Merge with master.Junio C Hamano
This merges commit c35a7b8d806317dc1762e36561cbd31c2530dd9c from master into our head commit edee414c3e5a546aae3dd1529f397df949713305 Sincerely, jit-merge command.
2005-08-10Skip merges in format-patch.Junio C Hamano
2005-08-10Add -v option to git-cherry.Junio C Hamano
2005-08-10Teach git push .git/branches shorthandJunio C Hamano
Although it is uncertain if we would keep .git/branches for long, the shorthand stored there can be used for pushing if it is host:path/to/git format, so let's make use of it. This does not use git-parse-remote because that script will be rewritten quite a bit for updated pulling. Signed-off-by: Junio C Hamano <>