summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* user-manual: recovering from corruptionJ. Bruce Fields2007-11-261-1/+130
| | | | | | | | | Some instructions on dealing with corruption of the object database. Most of this text is from an example by Linus, identified by Nicolas Pitre <nico@cam.org> with a little further editing by me. Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
* user-manual: clarify language about "modifying" old commitsJ. Bruce Fields2007-11-261-9/+11
| | | | | | | | It's important to remember that git doesn't really allowing "editing" or "modifying" commits, only replacing them by new commits. Redo some of the language to make this clearer. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
* user-manual: failed push to public repositoryJ. Bruce Fields2007-11-261-9/+49
| | | | | | | More details on the case of a failed push to a public (non-shared) repository. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
* user-manual: define "branch" and "working tree" at startJ. Bruce Fields2007-11-251-6/+12
| | | | | | Some explanation here might help. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
* Fix sample pre-commit hookJunio C Hamano2007-11-231-1/+1
| | | | | | | | If the worktree happened to have a file called HEAD, "diff-index --cached HEAD" would complain about the ambiguity between revision and path. Avoid it by using an explicit "--" for disambiguation. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Make test scripts executable.Junio C Hamano2007-11-232-0/+0
|
* bundle create: keep symbolic refs' names instead of resolving themJohannes Schindelin2007-11-232-1/+21
| | | | | | | | | | | | | | | | | | | | | | | When creating a bundle, symbolic refs used to be resolved to the non-symbolic refs they point to before being written to the list of contained refs. I.e. "git bundle create a1.bundle HEAD master" would show something like 388afe7881b33102fada216dd07806728773c011 refs/heads/master 388afe7881b33102fada216dd07806728773c011 refs/heads/master instead of 388afe7881b33102fada216dd07806728773c011 HEAD 388afe7881b33102fada216dd07806728773c011 refs/heads/master Introduce a special handling so that the symbolic refs are listed with the names passed on the command line. Noticed by Santi Béjar. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* send-email: add transfer encoding header with content-typeJeff King2007-11-211-1/+2
| | | | | | | | | | | We add the content-type header only when we have non-7bit characters from the 'From' header, so we really need to specify the encoding (in other cases, where the commit text needed a content-type, git-format-patch will already have added the encoding header). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Doc fix for git-reflog: mention @{...} syntax, and <ref> in synopsys.Matthieu Moy2007-11-201-4/+11
| | | | | | | | | | | The HEAD@{...} syntax was documented in git-rev-parse manpage, which is hard to find by someone looking for the documentation of porcelain. git-reflog is probably the place where one expects to find this. While I'm there, "git revlog show whatever" was also undocumented. Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* config: clarify compression defaultsBrian Downing2007-11-201-1/+5
| | | | | | | | | | | | | * Clarify that core.compression provides a system-wide default to other compression parameters. * Explain that the default for pack.compression, -1, is "a default compromise between speed and compression (currently equivalent to level 6)" according to zlib.h. Signed-off-by: Brian Downing <bdowning@lavos.net> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* config: correct core.loosecompression documentationBrian Downing2007-11-201-1/+1
| | | | | | | | | | * core.loosecompression stated that the default was "0 (best speed)", when in fact 0 is "no compression", and the default is Z_BEST_SPEED, which is 1. Signed-off-by: Brian Downing <bdowning@lavos.net> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maintJunio C Hamano2007-11-194-13/+81
|\ | | | | | | | | | | | | | | * 'maint' of git://linux-nfs.org/~bfields/git: Documentation: Fix references to deprecated commands user-manual: mention "..." in "Generating diffs", etc. user-manual: Add section "Why bisecting merge commits can be harder ..." git-remote.txt: fix example url
| * Documentation: Fix references to deprecated commandsJ. Bruce Fields2007-11-192-8/+3
| | | | | | | | | | | | | | | | ... by changing git-tar-tree reference to git-archive and removing seemingly unrelevant footnote about git-ssh-{fetch,upload}. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
| * user-manual: mention "..." in "Generating diffs", etc.J. Bruce Fields2007-11-191-4/+11
| | | | | | | | | | | | | | | | | | We should mention the use of the "..." syntax for git-diff here. The note about the difference between diff and the combined output of git-format-patch then no longer fits so well, so remove it. Add a reference to the git-format-patch[1] manpage. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
| * user-manual: Add section "Why bisecting merge commits can be harder ..."Steffen Prohaska2007-11-191-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a discussion of the challenge of bisecting merge commits to the user manual. The original author is Junio C Hamano <gitster@pobox.com>, who posted the text to the mailing list <http://marc.info/?l=git&m=119403257315527&w=2>. His email was adapted for the manual. The discussion is added to "Rewriting history and maintainig patch series". The text added requires good understanding of merging and rebasing. Therefore it should not be placed too early in the manual. Right after the section on "Problems with rewriting history", the discussion of bisect gives another reason for linearizing as much of the history as possible. The text includes suggestions and fixes by Ralf Wildenhues <Ralf.Wildenhues@gmx.de> and Benoit Sigoure <tsuna@lrde.epita.fr>. Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
| * git-remote.txt: fix example urlJ. Bruce Fields2007-11-181-1/+1
| | | | | | | | | | | | | | If I'm going to use a real example as a URL, I suppose I should get it right.... Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
* | GIT 1.5.3.6v1.5.3.6Junio C Hamano2007-11-182-10/+6
| |
* | grep -An -Bm: fix invocation of external grep commandJunio C Hamano2007-11-181-3/+3
|/ | | | | | | | | | When building command line to invoke external grep, the arguments to -A/-B/-C options were placd in randarg[] buffer, but the code forgot that snprintf() does not count terminating NUL in its return value. This caused "git grep -A1 -B2" to invoke external grep with "-B21 -A1". Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Update draft release notes for 1.5.3.6Junio C Hamano2007-11-171-1/+32
| | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* Merge branch 'ds/maint-deflatebound' into maintJunio C Hamano2007-11-174-1/+28
|\ | | | | | | | | * ds/maint-deflatebound: Improve accuracy of check for presence of deflateBound.
| * Improve accuracy of check for presence of deflateBound.David Symonds2007-11-084-1/+28
| | | | | | | | | | | | | | | | | | ZLIB_VERNUM isn't defined in some zlib versions, so this patch does a proper linking test in autoconf to see whether deflateBound exists in zlib. Also, setting NO_DEFLATE_BOUND will also work for folk not using autoconf. Signed-off-by: David Symonds <dsymonds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix per-directory exclude handing for "git add"Junio C Hamano2007-11-172-2/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In "dir_struct", each exclusion element in the exclusion stack records a base string (pointer to the beginning with length) so that we can tell where it came from, but this pointer is just pointing at the parameter that is given by the caller to the push_exclude_per_directory() function. While read_directory_recursive() runs, calls to excluded() makes use the data in the exclusion elements, including this base string. The caller of read_directory_recursive() is not supposed to free the buffer it gave to push_exclude_per_directory() earlier, until it returns. The test case Bruce Stephens gave in the mailing list discussion was simplified and added to the t3700 test. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | core.excludesfile clean-upJunio C Hamano2007-11-177-34/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are inconsistencies in the way commands currently handle the core.excludesfile configuration variable. The problem is the variable is too new to be noticed by anything other than git-add and git-status. * git-ls-files does not notice any of the "ignore" files by default, as it predates the standardized set of ignore files. The calling scripts established the convention to use .git/info/exclude, .gitignore, and later core.excludesfile. * git-add and git-status know about it because they call add_excludes_from_file() directly with their own notion of which standard set of ignore files to use. This is just a stupid duplication of code that need to be updated every time the definition of the standard set of ignore files is changed. * git-read-tree takes --exclude-per-directory=<gitignore>, not because the flexibility was needed. Again, this was because the option predates the standardization of the ignore files. * git-merge-recursive uses hardcoded per-directory .gitignore and nothing else. git-clean (scripted version) does not honor core.* because its call to underlying ls-files does not know about it. git-clean in C (parked in 'pu') doesn't either. We probably could change git-ls-files to use the standard set when no excludes are specified on the command line and ignore processing was asked, or something like that, but that will be a change in semantics and might break people's scripts in a subtle way. I am somewhat reluctant to make such a change. On the other hand, I think it makes perfect sense to fix git-read-tree, git-merge-recursive and git-clean to follow the same rule as other commands. I do not think of a valid use case to give an exclude-per-directory that is nonstandard to read-tree command, outside a "negative" test in the t1004 test script. This patch is the first step to untangle this mess. The next step would be to teach read-tree, merge-recursive and clean (in C) to use setup_standard_excludes(). Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Fix t9101 test failure caused by Subversion "auto-props"Wincent Colaiuta2007-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a user has an "auto-prop" in his/her ~/.subversion/config file for automatically setting the svn:keyword Id property on all ".c" files (a reasonably common configuration in the Subversion world) then one of the "svn propset" operations in the very first test would become a no-op, which in turn would make the next commit a no-op. This then caused the 25th test ('test propget') to fail because it expects a certain number of commits to have taken place but the actual number of commits was off by one. Björn Steinbrink identified the "auto-prop" feature as the cause of the failure. This patch avoids it by passing the "--no-auto-prop" flag to "svn import" when setting up the test repository, thus ensuring that the "svn propset" operation is no longer a no-op, regardless of the users' settings in their config. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-send-email: add charset header if we add encoded 'From'Jeff King2007-11-171-3/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We sometimes pick out the original rfc822 'From' header and include it in the body of the message. If the original author's name needs encoding, then we should specify that in the content-type header. If we already had a content-type header in the mail, then we may need to re-encode. The logic is there to detect this case, but it doesn't actually do the re-encoding. Signed-off-by: Jeff King <peff@peff.net> Acked-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-clean: honor core.excludesfileJunio C Hamano2007-11-142-1/+19
| | | | | | | | | | | | | | | | | | | | | | git-clean did not honor core.excludesfile configuration variable, although some other commands such as git-add and git-status did. Fix this inconsistency. Original report and patch from Shun'ichi Fuji. Rewritten by me and bugs and tests are mine. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Documentation: Fix man page breakage with DocBook XSL v1.72Jonas Fonseca2007-11-143-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From version 1.72 it will replace all dots in roff requests with U+2302 ("house" character), and add escaping in output for all instances of dot that are not in roff requests. This caused the ".ft" hack forcing monospace font in listingblocks to end up as "\&.ft" and being visible in the resulting man page. The fix adds a DOCBOOK_XSL_172 build variable that will disable the hack. To allow this variable to be defined in config.mak it also moves build variable handling below the inclusion of config.mak. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-remote.txt: fix typoSergei Organov2007-11-141-1/+1
| | | | | | | | | | Signed-off-by: Sergei Organov <osv@javad.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | core-tutorial.txt: Fix argument mistake in an example.Sergei Organov2007-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | One of examples has wrong output given the arguments provided. Fix arguments to match the output. Fix a minor syntax mistake in another place. Signed-off-by: Sergei Organov <osv@javad.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | replace reference to git-rm with git-reset in git-commit docJing Xue2007-11-142-4/+8
| | | | | | | | | | | | | | | | | | | | The message in git-commit suggesting to use 'git rm --cached' to unstage is just plain wrong. It really should mention 'git reset'. Suggested by Jan Hudec. Signed-off-by: Jing Xue <jingxue@digizenstudio.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Grammar fixes for gitattributes documentationWincent Colaiuta2007-11-141-8/+9
| | | | | | | | | | | | | | | | | | | | Tweak the "filter" section of the gitattributes documentation to add some missing articles and improve some word choices without changing the semantics of the section. Signed-off-by: Wincent Colaiuta <win@wincent.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Don't allow fast-import tree delta chains to exceed maximum depthShawn O. Pearce2007-11-141-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brian Downing noticed fast-import can produce tree depths of up to 6,035 objects and even deeper. Long delta chains can create very small packfiles but cause problems during repacking as git needs to unpack each tree to count the reachable blobs. What's happening here is the active branch cache isn't big enough. We're swapping out the branch and thus recycling the tree information (struct tree_content) back into the free pool. When we later reload the tree we set the delta_depth to 0 but we kept the tree we just reloaded as a delta base. So if the tree we reloaded was already at the maximum depth we wouldn't know it and make the new tree a delta. Multiply the number of times the branch cache has to swap out the tree times max_depth (10) and you get the maximum delta depth of a tree created by fast-import. In Brian's case above the active branch cache had to swap the branch out 603/604 times during this import to produce a tree with a delta depth of 6035. Acked-by: Brian Downing <bdowning@lavos.net> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | revert/cherry-pick: allow starting from dirty work tree.Junio C Hamano2007-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason to forbid a dirty work tree when reverting or cherry-picking a change, as long as the index is clean. The scripted version used to allow it: case "$no_commit" in t) # We do not intend to commit immediately. We just want to # merge the differences in. head=$(git-write-tree) || die "Your index file is unmerged." ;; *) head=$(git-rev-parse --verify HEAD) || die "You do not have a valid HEAD" files=$(git-diff-index --cached --name-only $head) || exit if [ "$files" ]; then die "Dirty index: cannot $me (dirty: $files)" fi ;; esac but C rewrite tightened the check, probably by mistake. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | t/t3404: fix test for a bogus todo file.Junio C Hamano2007-11-131-1/+1
| | | | | | | | | | | | | | The test wants to see if there are still remaining tasks, but checked a wrong file. Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Merge branch 'sp/maint-plug-traverse-commit-list-leak' into maintJunio C Hamano2007-11-121-0/+7
|\ \ | | | | | | | | | | | | * sp/maint-plug-traverse-commit-list-leak: Fix memory leak in traverse_commit_list
| * | Fix memory leak in traverse_commit_listShawn O. Pearce2007-11-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we were listing objects too then the objects were buffered in an array only reachable from a stack allocated structure. When this function returns that array would be leaked as nobody would have a reference to it anymore. Historically this hasn't been a problem as the primary user of traverse_commit_list() (the noble git-rev-list) would terminate as soon as the function was finished, thus allowing the operating system to cleanup memory. However we have been leaking this data in git-pack-objects ever since that program learned how to run the revision listing internally, rather than relying on reading object names from git-rev-list. To better facilitate reuse of traverse_commit_list during other builtin tools (such as git-fetch) we shouldn't leak temporary memory like this and instead we need to clean up properly after ourselves. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | for-each-ref: fix off by one read.Christian Couder2007-11-121-1/+1
| | | | | | | | | | | | | | | Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | git-branch: remove mention of non-existent '-b' optionJeff King2007-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This looks like a cut and paste error from the git-checkout explanation of --no-track. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | git-svn: prevent dcommitting if the index is dirty.Benoit Sigoure2007-11-122-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dcommit uses rebase to sync the history with what has just been pushed to SVN. Trying to dcommit with a dirty index is troublesome for rebase, so now the user will get an error message if he attempts to dcommit with a dirty index. Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr> Acked-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | fix index-pack with packs >4GB containing deltas on 32-bit machinesNicolas Pitre2007-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This probably hasn't been properly tested before. Here's a script to create a 8GB repo with the necessary characteristics (copy the test-genrandom executable from the Git build tree to /tmp first): ----- #!/bin/bash git init git config core.compression 0 # create big objects with no deltas for i in $(seq -w 1 2 63) do echo $i /tmp/test-genrandom $i 268435456 > file_$i git add file_$i rm file_$i echo "file_$i -delta" >> .gitattributes done # create "deltifiable" objects in between big objects for i in $(seq -w 2 2 64) do echo "$i $i $i" >> grow cp grow file_$i git add file_$i rm file_$i done rm grow # create a pack with them git commit -q -m "commit of big objects interlaced with small deltas" git repack -a -d ----- Then clone this repo over the Git protocol. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | git-hash-object should honor config variablesNicolas Pitre2007-11-111-0/+2
| | | | | | | | | | | | | | | | | | | | | ... such as core.compression. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | gitweb: correct month in date display for atom feedsVincent Zanotti2007-11-101-1/+1
| | | | | | | | | | | | | | | Signed-off-by: Vincent Zanotti <vincent.zanotti@m4x.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | | print warning/error/fatal messages in one shotNicolas Pitre2007-11-101-3/+3
|/ / | | | | | | | | | | | | | | Not doing so is likely to create a messed up display when sent over the sideband protocol. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Start preparing for 1.5.3.6Junio C Hamano2007-11-092-1/+22
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | git-send-email: Change the prompt for the subject of the initial message.Benoit Sigoure2007-11-091-1/+1
| | | | | | | | | | | | | | | | I never understood what this prompt was asking for until I read the actual source code. I think this wording is much more understandable. Signed-off-by: Benoit Sigoure <tsuna@lrde.epita.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | SubmittingPatches: improve the 'Patch:' section of the checklistSergei Organov2007-11-091-5/+4
| | | | | | | | | | | | | | | | | | There were 2 items "send patch to..." but having different set of addresses to send patch to. Merge them together and move the resulting item to the end of checklist. Signed-off-by: Sergei Organov <osv@javad.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | instaweb: Minor cleanups and fixes for potential problemsJonas Fonseca2007-11-091-9/+8
| | | | | | | | | | | | | | | | Fix path quoting and test of empty values that some shells do not like. Remove duplicate check and setting of $browser. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | stop t1400 hiding errors in testsAlex Riesen2007-11-091-1/+1
| | | | | | | | | | | | | | | | The last rm in the test was lacking an "&&" before it, which caused the errors in the commands be silently hidden. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | Makefile: add missing dependency on wt-status.hJunio C Hamano2007-11-091-0/+1
| | | | | | | | Signed-off-by: Junio C Hamano <gitster@pobox.com>
* | refresh_index_quietly(): express "optional" nature of index writing betterJunio C Hamano2007-11-091-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The point of the part of the code this patch touches is that if we modified the active_cache, we try to write it out and make it the index file for later users to use by calling "commit_locked_index", but we do not really care about the failure from this sequence because it is done purely as an optimization. The original code called three functions primarily for their side effects but as condition of an if statement, which is admittedly a bad style. Incidentally, it squelches an "empty if body" warning from gcc. Signed-off-by: Junio C Hamano <gitster@pobox.com>