Permalink
Commits on Jul 21, 2008
  1. Merge branch 'ap/trackinfo'

    gitster committed Jul 21, 2008
    * ap/trackinfo:
      Reword "your branch has diverged..." lines to reduce line length
  2. Merge branch 'jc/rerere-auto-more'

    gitster committed Jul 21, 2008
    * jc/rerere-auto-more:
      rerere.autoupdate: change the message when autoupdate is in effect
  3. Merge branch 'ns/am-abort'

    gitster committed Jul 21, 2008
    * ns/am-abort:
      git am --abort
  4. Merge branch 'jc/add-addremove'

    gitster committed Jul 21, 2008
    * jc/add-addremove:
      git-add --all: documentation
      git-add --all: tests
      git-add --all: add all files
      builtin-add.c: restructure the code for maintainability
    
    Conflicts:
    	builtin-add.c
  5. "needs update" considered harmful

    gitster committed Jul 20, 2008
    "git update-index --refresh", "git reset" and "git add --refresh" have
    reported paths that have local modifications as "needs update" since the
    beginning of git.
    
    Although this is logically correct in that you need to update the index at
    that path before you can commit that change, it is now becoming more and
    more clear, especially with the continuous push for user friendliness
    since 1.5.0 series, that the message is suboptimal.  After all, the change
    may be something the user might want to get rid of, and "updating" would
    be absolutely a wrong thing to do if that is the case.
    
    I prepared two alternatives to solve this.  Both aim to reword the message
    to more neutral "locally modified".
    
    This patch is a more intrusive variant that changes the message for only
    Porcelain commands ("add" and "reset") while keeping the plumbing
    "update-index" intact.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. Move read_in_full() and write_in_full() to wrapper.c

    gitster committed Jul 20, 2008
    A few compat/* layer functions call these functions, but we would really
    want to keep them thin, without depending too much on the libgit proper.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. Link shell with compat layer functions

    gitster committed Jul 20, 2008
    This in the short term will break on platforms that use compat implemenations
    that call outside compat layer, but that is exactly what we want.  To give
    incentive to fix things for people who are affected and more importantly have
    environment to test their fixes.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  8. Merge branch 'maint'

    gitster committed Jul 21, 2008
    * maint:
      fix usage string for git grep
      refresh-index: fix bitmask assignment
    
    Conflicts:
    	builtin-grep.c
Commits on Jul 20, 2008
  1. git-svn: fix git svn info to work without arguments

    dmpot committed with gitster Jul 20, 2008
    commit 2fe403e broke "git-svn info ."
    due to replacing '.' with '' in canonicalize_path for the top directory,
    while find_file_type_and_diff_status was not corrected.
    
    Bug reports:
    
    http://thread.gmane.org/gmane.comp.version-control.git/87822/
    http://bugs.debian.org/490400
    
    Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. builtin-push.c: Cleanup - use OPT_BIT() and remove some variables

    chunga committed with gitster Jul 20, 2008
    Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. builtin-merge.c: Fix option parsing

    chunga committed with gitster Jul 20, 2008
    Now "git merge -m" needs a message, and errors out with the usage
    text if none is given.
    This way, t7600-merge.sh is fixed.
    
    Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
    Acked-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  4. fix usage string for git grep

    Jonathan Nieder committed with gitster Jul 20, 2008
    Without this patch, git-grep gives confusing usage information:
    
    	$ git grep --confused
    	usage: git grep <option>* <rev>* [-e] <pattern> [<path>...]
    	$ git grep HEAD pattern
    	fatal: ambiguous argument 'pattern': unknown revision or path no
    	t in the working tree.
    	Use '--' to separate paths from revisions
    
    So put <pattern> before the <rev>s, in accordance with actual correct
    usage.  While we're changing the usage string, we might as well include
    the "--" separating revisions and paths, too.
    
    Signed-off-by: Jonathan Nieder <jrnieder@uchicago.edu>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. Teach 'git merge' that some merge strategies no longer exist

    Miklos Vajna committed with gitster Jul 20, 2008
    'recur' co-existed with 'recursive' when rewriting it in C, but it no
    longer available.  'stupid' was also recently removed.
    
    "git merge -s confused origin" still includes them in the list of
    available merge strategies.
    
    [jc: this is a squash of two micropatches]
    
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. cvsserver: Add testsuite for packed refs

    noschinl committed with gitster Jul 17, 2008
    Check that req_update shows refs, even if all refs are packed.
    
    Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. refresh-index: fix bitmask assignment

    gitster committed Jul 20, 2008
    5fdeacb (Teach update-index about --ignore-submodules, 2008-05-14) added a
    new refresh option flag but did not assign a unique bit for it correctly,
    and broke "update-index --ignore-missing".
    
    This fixes it.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  8. git-add --all: documentation

    gitster committed Jul 20, 2008
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  9. git-add --all: tests

    gitster committed Jul 20, 2008
    And here is a small test script that makes sure that:
    
     - both modified and new files are included,
     - removed file is noticed, and
     - no ignored file is included.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  10. git-add --all: add all files

    gitster committed Jul 20, 2008
    People sometimes find that "git add -u && git add ." are 13 keystrokes too
    many.  This reduces it by nine.
    
    The support of this has been very low priority for me personally, because
    I almost never do "git add ." in a directory with already tracked files,
    and in a new directory, there is no point saying "git add -u".
    
    However, for two types of people (that are very different from me), this
    mode of operation may make sense and there is no reason to leave it
    unsupported.  That is:
    
     (1) If you are extremely well disciplined and keep perfect .gitignore, it
         always is safe to say "git add ."; or
    
     (2) If you are extremely undisciplined and do not even know what files
         you created, and you do not very much care what goes in your history,
         it does not matter if "git add ." included everything.
    
    So there it is, although I suspect I will not use it myself, ever.
    
    It will be too much of a change that is against the expectation of the
    existing users to allow "git commit -a" to include untracked files, and
    it would be inconsistent if we named this new option "-a", so the short
    option is "-A".  We _might_ want to later add "git commit -A" but that is
    a separate topic.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  11. builtin-add.c: restructure the code for maintainability

    gitster committed Jul 20, 2008
    The implementation of "git add" has four major codepaths that are mutually
    exclusive:
    
     - if "--interactive" or "--patch" is given, spawn "git add--interactive"
       and exit without doing anything else.  Otherwise things are handled
       internally in this C code;
    
     - if "--update" is given, update the modified files and exit without
       doing anything else;
    
     - if "--refresh" is given, do refresh and exit without doing anything
       else;
    
     - otherwise, find the paths that match pathspecs and stage their
       contents.
    
    It led to an unholy mess in the code structure; each of the latter three
    codepaths has a separate call to read_cache(), even though they are all
    about "read the current index, update it and write it back", and logically
    they should read the index once _anyway_.
    
    This cleans up the latter three cases by introducing a pair of helper
    variables:
    
     - "add_new_files" is set if we need to scan the working tree for paths
       that match the pathspec.  This variable is false for "--update" and
       "--refresh", because they only work on already tracked files.
    
     - "require_pathspec" is set if the user must give at least one pathspec.
       "--update" does not need it but all the other cases do.
    
    This is in preparation for introducing a new option "--all", that does the
    equivalent of "git add -u && git add ." (aka "addremove").
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
Commits on Jul 19, 2008
  1. Getting closer to 1.6.0-rc0

    gitster committed Jul 19, 2008
    Update the links to "stale" versions of documentation to link to 1.5.6.4
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  2. git am --abort

    Nanako Shiraishi committed with gitster Jul 16, 2008
    After failing to apply patches in the middle of a series, "git am --abort"
    lets you go back to the original commit.
    
    [jc: doc/help update from Olivier, and fixups for "am -3" squashed in]
    
    Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
    Signed-off-by: Olivier Marin <dkr@freesurf.fr>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  3. Merge branch 'maint'

    gitster committed Jul 19, 2008
    * maint:
      GIT 1.5.6.4
      builtin-rm: fix index lock file path
      http-fetch: do not SEGV after fetching a bad pack idx file
      rev-list: honor --quiet option
      api-run-command.txt: typofix
  4. Support gitlinks in fast-import.

    angavrilov committed with gitster Jul 19, 2008
    Currently fast-import/export cannot be used for
    repositories with submodules. This patch extends
    the relevant programs to make them correctly
    process gitlinks.
    
    Links can be represented by two forms of the
    Modify command:
    
    M 160000 SHA1 some/path
    
    which sets the link target explicitly, or
    
    M 160000 :mark some/path
    
    where the mark refers to a commit. The latter
    form can be used by importing tools to build
    all submodules simultaneously in one physical
    repository, and then simply fetch them apart.
    
    Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  5. .mailmap update

    gitster committed Jul 19, 2008
    A few people sent in patches under slightly different spelling recently.
    Hopefully this catches most of them if not all (with help from Dscho).
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  6. Documentation/git-merge.txt: Partial rewrite of How Merge Works

    Petr Baudis committed with gitster Jul 19, 2008
    The git-merge documentation's "HOW MERGE WORKS" section is confusingly
    composed and actually omits the most interesting part, the merging of
    the arguments into HEAD itself, surprisingly not actually mentioning
    the fast-forward merge anywhere.
    
    This patch replaces the "[NOTE]" screenful of highly technical details
    by a single sentence summing up the interesting information, and instead
    explains how are the arguments compared with HEAD and the three possible
    inclusion states that are named "Already up-to-date", "Fast-forward"
    and "True merge". It also makes it clear that the rest of the section
    talks only about the true merge situation, and slightly expands the
    talk on solving conflicts.
    
    Junio initiated the removal of the Note screenful altogether and
    offered many stylistical fixes.
    
    Signed-off-by: Petr Baudis <pasky@suse.cz>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  7. archive: remove unused headers

    René Scharfe committed with gitster Jul 18, 2008
    Remove obsolete #includes.
    
    Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  8. archive: make zip compression level independent from core git

    René Scharfe committed with gitster Jul 18, 2008
    zlib_compression_level is the compression level used for git's object store.
    It's 1 by default, which is the fastest setting.  This variable is also used
    as the default compression level for ZIP archives created by git archive.
    
    For archives, however, zlib's own default of 6 is more appropriate, as it's
    favouring small size over speed -- archive creation is not that performance
    critical most of the time.
    
    This patch makes git archive independent from git's internal compression
    level setting.  It affects invocations of git archive without explicitly
    specified compression level option, only.
    
    Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  9. Documentation: How to ignore local changes in tracked files

    Petr Baudis committed with gitster Jul 18, 2008
    This patch explains more carefully that `.gitignore` concerns only
    untracked files and refers the reader to
    
    	git update-index --assume-unchanged
    
    in the need of ignoring uncommitted changes in already tracked files.
    The description of this option is lifted to a more "porcelainish"
    level and explains the caveats of this usecase.
    
    Whether feasible or not, I believe adding this functionality to
    the porcelain is out of the scope of this patch. (And I personally
    think that referring to the plumbing in the case of such a special
    usage is fine.)
    
    This is currently probably one of the top FAQs at #git and the
    --assume-unchanged switch is not widely known; gitignore(5) is the first
    place where people are likely to look for it.
    
    Signed-off-by: Petr Baudis <pasky@suse.cz>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  10. Documentation/git-submodule.txt: Further clarify the description

    Petr Baudis committed with gitster Jul 18, 2008
    This patch rewrites the general description yet again, first clarifying
    the high-level concept, mentioning the difference to remotes and using
    the subtree merge strategy, then getting to the details about tree
    entries and .gitmodules file.
    
    The patch also makes few smallar grammar fixups within the rest of the
    description and clarifies how does 'init' relate to 'update --init'.
    
    Cc: Heikki Orsila <shdl@zakalwe.fi>
    Signed-off-by: Petr Baudis <pasky@suse.cz>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  11. Add ANSI control code emulation for the Windows console

    peterh committed with gitster Jul 18, 2008
    This adds only the minimum necessary to keep git pull/merge's diffstat from
    wrapping. Notably absent is support for the K (erase) operation, and support
    for POSIX write.
    
    Signed-off-by: Peter Harris <git@peter.is-a-geek.org>
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  12. builtin-clone: rewrite guess_dir_name()

    Johannes Sixt committed with gitster Jul 19, 2008
    The function has to do three small and independent tasks, but all of them
    were crammed into a single loop. This rewrites the function entirely by
    unrolling these tasks.
    
    We also now use is_dir_sep(c) instead of c == '/' to increase portability.
    
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  13. Teach lookup_prog not to select directories

    Eric Raible committed with gitster Jul 18, 2008
    Without this simple fix "git gui" in the git source directory
    finds the git-gui directory instead of the tcl script in /usr/bin.
    
    Signed-off-by: Eric Raible <raible@gmail.com>
    Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  14. testsuite for cvs co -c

    Fabian Emmes committed with gitster Jul 17, 2008
    Check that all branches are displayed.
    
    Signed-off-by: Fabian Emmes <fabian.emmes@rwth-aachen.de>
    Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  15. cvsserver: Add cvs co -c support

    noschinl committed with gitster Jul 17, 2008
    Implement cvs checkout's -c option by returning a list of all "modules".
    This is more useful than displaying a perl warning if -c is given.
    
    Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
  16. cvsserver: Add support for packed refs

    noschinl committed with gitster Jul 17, 2008
    req_update still parses /refs/heads manually. Replace this by
    a call to show-ref.
    
    Signed-off-by: Lars Noschinski <lars@public.noschinski.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>