Permalink
Commits on Feb 15, 2009
  1. RelNotes Update

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 15, 2009
  2. Merge branch 'mc/setup-cd-p'

    * mc/setup-cd-p:
      git-sh-setup: Use "cd" option, not /bin/pwd, for symlinked work tree
    gitster committed Feb 15, 2009
  3. Merge branch 'ff/submodule-no-fetch'

    * ff/submodule-no-fetch:
      submodule: add --no-fetch parameter to update command
    gitster committed Feb 15, 2009
  4. Merge branch 'ms/mailmap'

    * ms/mailmap:
      Move mailmap documentation into separate file
      Change current mailmap usage to do matching on both name and email of author/committer.
      Add map_user() and clear_mailmap() to mailmap
      Add find_insert_index, insert_at_index and clear_func functions to string_list
      Add mailmap.file as configurational option for mailmap location
    gitster committed Feb 15, 2009
  5. Merge branch 'jn/gitweb-committag'

    * jn/gitweb-committag:
      gitweb: Better regexp for SHA-1 committag match
    gitster committed Feb 15, 2009
  6. Merge branch 'rc/http-push'

    * rc/http-push:
      use a hash of the lock token as the suffix for PUT/MOVE
    gitster committed Feb 15, 2009
  7. use a hash of the lock token as the suffix for PUT/MOVE

    After 753bc91 ("Remove the requirement opaquelocktoken uri scheme"),
    lock tokens are in the URI forms in which they are received from the
    server, eg. 'opaquelocktoken:', 'urn:uuid:'.
    
    However, "start_put" (and consequently "start_move"), which attempts to
    create a unique temporary file using the UUID of the lock token,
    inadvertently uses the lock token in its URI form. These file
    operations on the server may not be successful (specifically, in
    Windows), due to the colon ':' character from the URI form of the lock
    token in the file path.
    
    This patch uses a hash of the lock token instead, guaranteeing only
    "safe" characters (a-f, 0-9) are used in the file path.
    
    The token's hash is generated when the lock token is received from the
    server in handle_new_lock_ctx, minimizing the number of times of
    hashing.
    
    Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    rctay committed with gitster Feb 14, 2009
  8. Merge branch 'js/gc-prune'

    * js/gc-prune:
      gc: make --prune useful again by accepting an optional parameter
    gitster committed Feb 15, 2009
  9. Merge branch 'tr/abbrev-commit-no-ellipses'

    * tr/abbrev-commit-no-ellipses:
      log: do not print ellipses with --abbrev-commit
    gitster committed Feb 15, 2009
  10. Merge branch 'jc/branch-previous'

    * jc/branch-previous:
      Teach @{-1} to git merge
      Teach the "@{-1} syntax to "git branch"
    gitster committed Feb 15, 2009
  11. bash: fix misspelled 'git svn' option

    '--user-log-author' -> '--use-log-author'
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    szeder committed with gitster Feb 14, 2009
  12. t1500: more 'git rev-parse --git-dir' tests

    Extend t1500 with tests of 'git rev-parse --git-dir' when invoked from
    other directories of the repository or the work tree.
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    szeder committed with gitster Feb 14, 2009
  13. Move 'rev-parse --git-dir' test to t1500

    Commit 72183cb (Fix gitdir detection when in subdir of
    gitdir, 2009-01-16) added a test to 't1501-worktree' to check the
    behaviour of 'git rev-parse --git-dir' in a special case.  However,
    t1501 is about testing separate work tree setups, and not about basic
    'rev-parse' functionality, which is tested in t1500-rev-parse.
    Therefore, this patch moves that test to t1500.
    
    Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    szeder committed with gitster Feb 14, 2009
  14. Documentation: pruning recipe for destructive filter-branch

    Add a section about how to shrink a repository's size after running
    git-filter-branch to remove large blobs from history.
    
    This comes up every week or so on IRC, and the commands required to
    handle every case are not very newbie-friendly, so hopefully writing
    them down somewhere leads to fewer questions.
    
    It may seem contradictory to document fallbacks for older Gits in
    newer docs, but we want to point people at this as a FAQ answer, and
    they will frequently not have the newest version installed.
    
    Thanks to Björn Steinbrink and Junio C Hamano for comments and
    corrections.
    
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    trast committed with gitster Feb 14, 2009
  15. gc: make --prune useful again by accepting an optional parameter

    With this patch, "git gc --no-prune" will not prune any loose (and
    dangling) object, and "git gc --prune=5.minutes.ago" will prune
    all loose objects older than 5 minutes.
    
    This patch benefitted from suggestions by Thomas Rast and Jan Krï¿œger.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    dscho committed with gitster Feb 14, 2009
Commits on Feb 14, 2009
  1. Teach @{-1} to git merge

    1.6.2 will have @{-1} syntax advertised as "usable anywhere you can use
    a branch name".  However, "git merge @{-1}" did not work.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 14, 2009
  2. Teach the "@{-1} syntax to "git branch"

    This teaches the new "@{-1} syntax to refer to the previous branch to "git
    branch".  After looking at somebody's faulty patch series on a topic
    branch too long, if you decide it is not worth merging, you can just say:
    
        $ git checkout master
        $ git branch -D @{-1}
    
    to get rid of it without having to type the name of the topic you now hate
    so much for wasting a lot of your time.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 14, 2009
  3. symbolic-ref: allow refs/<whatever> in HEAD

    Commit afe5d3d introduced a safety valve to symbolic-ref to
    disallow installing an invalid HEAD. It was accompanied by
    b229d18, which changed validate_headref to require that
    HEAD contain a pointer to refs/heads/ instead of just refs/.
    Therefore, the safety valve also checked for refs/heads/.
    
    As it turns out, topgit is using refs/top-bases/ in HEAD,
    leading us to re-loosen (at least temporarily) the
    validate_headref check made in b229d18. This patch does the
    corresponding loosening for the symbolic-ref safety valve,
    so that the two are in agreement once more.
    
    Signed-off-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    peff committed with gitster Feb 13, 2009
  4. Remove redundant bit clears from diff_setup()

    All bits already clear after memset(0).
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Keith Cascio committed with gitster Feb 13, 2009
  5. log: do not print ellipses with --abbrev-commit

    'git log --abbrev-commit' added an ellipsis to all commit names that
    were abbreviated.  This was particularly annoying if you wanted to
    cut&paste the sha1 from the terminal, since selecting by word would
    pick up '...'  too.
    
    So use find_unique_abbrev() instead of diff_unique_abbrev() in all
    log-related commit sha1 printing routines, and also change the
    formatting of the 'Merge: parent1 parent2' line output via
    pretty_print_commit().
    
    Signed-off-by: Thomas Rast <trast@student.ethz.ch>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    trast committed with gitster Feb 13, 2009
Commits on Feb 13, 2009
  1. bash-completion: Complete the values of color.interactive, color.ui, …

    …color.pager
    
    Signed-off-by: Matt Kraai <kraai@ftbfs.org>
    Acked-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    kraai committed with gitster Feb 12, 2009
  2. Install the default "master" branch configuration after cloning a void

    After "cloning from an empty repository", we have a configuration to
    describe the remote's URL and the default ref mappings, but we lack the
    branch configuration for the default branch we create on our end,
    "master".
    
    It is likely that the empty repository we cloned from will point the
    default "master" branch with its HEAD, so prepare the local configuration
    to match.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 12, 2009
  3. Update documentation to add further information about using Thunderbi…

    …rd with git-imap-send.
    
    Signed-off-by: Jeremy White <jwhite@codeweavers.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jwhite66 committed with gitster Feb 12, 2009
  4. git-rebase.txt: --interactive does not work with --whitespace

    Signed-off-by: Mark Burton <markb@ordern.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    burto committed with gitster Feb 12, 2009
Commits on Feb 12, 2009
  1. Add 'rm -f' equivalent to 'git rm' example of filter-branch --index-f…

    …ilter
    
    Signed-off-by: Jacob Helwig <jacob.helwig@gmail.com>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    jhelwig committed with gitster Feb 12, 2009
  2. Revert "validate_headref: tighten ref-matching to just branches"

    This reverts commit b229d18, at least
    until we figure out how to work better with TopGit that points HEAD to
    refs/top-bases/ hierarchy.
    gitster committed Feb 12, 2009
  3. Bugfix: GIT_EXTERNAL_DIFF with more than one changed files

    When there is more than one file that are changed, running git diff with
    GIT_EXTERNAL_DIFF incorrectly diagnoses an programming error and dies.
    The check introduced in 479b0ae (diff: refactor tempfile cleanup handling,
    2009-01-22) to detect a temporary file slot that forgot to remove its
    temporary file was inconsistent with the way the codepath to remove the
    temporary to mark the slot that it is done with it.
    
    This patch fixes this problem and adds a test case for it.
    
    Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
    Acked-by: Jeff King <peff@peff.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    nazri committed with gitster Feb 12, 2009
  4. Merge branch 'maint'

    * maint:
      Prepare for 1.6.1.4.
      Make repack less likely to corrupt repository
      fast-export: ensure we traverse commits in topological order
      Clear the delta base cache if a pack is rebuilt
    
    Conflicts:
    	RelNotes
    gitster committed Feb 12, 2009
  5. Prepare for 1.6.1.4.

    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 12, 2009
  6. Merge branch 'maint-1.6.0' into maint

    * maint-1.6.0:
      Make repack less likely to corrupt repository
      fast-export: ensure we traverse commits in topological order
      Clear the delta base cache if a pack is rebuilt
    gitster committed Feb 12, 2009
  7. Make repack less likely to corrupt repository

    Some platforms refuse to rename a file that is open.  When repacking an
    already packed repository without adding any new object, the resulting
    pack will contain the same set of objects as an existing pack, and on such
    platforms, a newly created packfile cannot replace the existing one.
    
    The logic detected this issue but did not try hard enough to recover from
    it.  Especially because the files that needs renaming come in pairs, there
    potentially are different failure modes that one can be renamed but the
    others cannot.  Asking manual recovery to end users were error prone.
    
    This patch tries to make it more robust by first making sure all the
    existing files that need to be renamed have been renamed before
    continuing, and attempts to roll back if some failed to rename.
    
    This is based on an initial patch by Robin Rosenberg.
    
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    gitster committed Feb 10, 2009
  8. fast-export: ensure we traverse commits in topological order

    fast-export will only list as parents those commits which have already
    been traversed (making it appear as if merges have been squashed if not
    all parents have been traversed).  To avoid this silent squashing of
    merge commits, we request commits in topological order.
    
    Signed-off-by: Elijah Newren <newren@gmail.com>
    Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    newren committed with gitster Feb 11, 2009
  9. filter-branch: Add more error-handling

    9273b56 (filter-branch: Fix fatal error on bare repositories, 2009-02-03)
    fixed a missing check of return status from an underlying command in
    git-filter-branch, but there still are places that do not check errors.
    For example, the command does not pay attention to the exit status of the
    command given by --commit-filter.  It should abort in such a case.
    
    This attempts to fix all the remaining places that fails to checks errors.
    
    In two places, I've had to break apart pipelines in order to check the
    error code for the first stage of the pipeline, as discussed here:
    
      http://kerneltrap.org/mailarchive/git/2009/1/28/4835614
    
    Feedback on this patch was provided by Johannes Sixt, Johannes Schindelin
    and Junio C Hamano.  Thomas Rast helped with pipeline error handling.
    
    Signed-off-by: Eric Kidd <git@randomhacks.net>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    committed with gitster Feb 11, 2009
Commits on Feb 11, 2009
  1. Fix contrib/hooks/post-receive-email for new duplicate branch

    In the show_new_revisions function, the original code:
    
      git rev-parse --not --branches | grep -v $(git rev-parse $refname) |
    
    isn't quite right since one can create a new branch and push it
    without any new commits.  In that case, two refs will have the same
    sha1 but both would get filtered by the 'grep'.  In the end, we'll
    show ALL the history which is not what we want.  Instead, we should
    list the branches by name and remove the branch being updated and THEN
    pass that list through rev-parse.
    
    Revised as suggested by Jakub Narebski and Junio C Hamano to use
    git-for-each-ref instead of git-branch.  (Thanks!)
    
    Signed-off-by: Pat Notz <pknotz@sandia.gov>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    Pat Notz committed with gitster Feb 10, 2009
  2. Clear the delta base cache if a pack is rebuilt

    There is some risk that re-opening a regenerated pack file with
    different offsets could leave stale entries within the delta base
    cache that could be matched up against other objects using the same
    "struct packed_git*" and pack offset.
    
    Throwing away the entire delta base cache in this case is safer,
    as we don't have to worry about a recycled "struct packed_git*"
    matching to the wrong base object, resulting in delta apply
    errors while unpacking an object.
    
    Suggested-by: Daniel Barkalow <barkalow@iabervon.org>
    Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>
    spearce committed with gitster Feb 11, 2009