1. 21 1月, 2009 1 次提交
  2. 18 1月, 2009 2 次提交
  3. 16 1月, 2009 3 次提交
  4. 15 1月, 2009 3 次提交
  5. 07 1月, 2009 1 次提交
    • T
      diff: accept -- when using --no-index · e423ffd8
      Thomas Rast 提交于
      Accept -- as an "end of options" marker even when using --no-index.
      Previously, the -- triggered a "normal" index/tree diff and subsequently
      failed because of the unrecognized (in that mode) --no-index.
      
      Note that the second loop can treat '--' as a normal option, because
      the preceding checks ensure it is the third-to-last argument.
      
      While at it, fix the parsing of "-q" option in --no-index mode as well.
      Signed-off-by: NThomas Rast <trast@student.ethz.ch>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      e423ffd8
  6. 06 1月, 2009 1 次提交
  7. 04 1月, 2009 1 次提交
  8. 03 1月, 2009 1 次提交
    • J
      builtin-apply: prevent non-explicit permission changes · 1f7903a3
      Junio C Hamano 提交于
      A git patch that does not change the executable bit records the mode bits
      on its "index" line.  "git apply" used to interpret this mode exactly the
      same way as it interprets the mode recorded on "new mode" line, as the
      wish by the patch submitter to set the mode to the one recorded on the
      line.
      
      The reason the mode does not agree between the submitter and the receiver
      in the first place is because there is _another_ commit that only appears
      on one side but not the other since their histories diverged, and that
      commit changes the mode.  The patch has "index" line but not "new mode"
      line because its change is about updating the contents without affecting
      the mode.  The application of such a patch is an explicit wish by the
      submitter to only cherry-pick the commit that updates the contents without
      cherry-picking the commit that modifies the mode.  Viewed this way, the
      current behaviour is problematic, even though the command does warn when
      the mode of the path being patched does not match this mode, and a careful
      user could detect this inconsistencies between the patch submitter and the
      patch receiver.
      
      This changes the semantics of the mode recorded on the "index" line;
      instead of interpreting it as the submitter's wish to set the mode to the
      recorded value, it merely informs what the mode submitter happened to
      have, and the presense of the "index" line is taken as submitter's wish to
      keep whatever the mode is on the receiving end.
      
      This is based on the patch originally done by Alexander Potashev with a
      minor fix; the tests are mine.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      1f7903a3
  9. 27 12月, 2008 1 次提交
  10. 25 12月, 2008 1 次提交
  11. 24 12月, 2008 1 次提交
  12. 23 12月, 2008 1 次提交
  13. 21 12月, 2008 4 次提交
    • J
      Make sure lockfiles are unlocked when dying on SIGPIPE · 0693f9dd
      Junio C Hamano 提交于
      We cleaned up lockfiles upon receiving the usual suspects HUP, TERM, QUIT
      but a wicked user could kill us of asphyxiation by piping our output to a
      pipe that does not read.  Protect ourselves by catching SIGPIPE and clean
      up the lockfiles as well in such a case.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0693f9dd
    • M
      git-sh-setup: Fix scripts whose PWD is a symlink into a git work-dir · 08fc0608
      Marcel M. Cary 提交于
      I want directories of my working tree to be linked to from various
      paths on my filesystem where third-party components expect them, both
      in development and production environments.  A build system's install
      step could solve this, but I develop scripts and web pages that don't
      need to be built.  Git's submodule system could solve this, but we
      tend to develop, branch, and test those directories all in unison, so
      one big repository feels more natural.  We prefer to edit and commit
      on the symlinked paths, not the canonical ones, and in that setting,
      "git pull" fails to find the top-level directory of the repository
      while other commands work fine.
      
      "git pull" fails because POSIX shells have a notion of current working
      directory that is different from getcwd().  The shell stores this path
      in PWD.  As a result, "cd ../" can be interpreted differently in a
      shell script than chdir("../") in a C program.  The shell interprets
      "../" by essentially stripping the last textual path component from
      PWD, whereas C chdir() follows the ".." link in the current directory
      on the filesystem.  When PWD is a symlink, these are different
      destinations.  As a result, Git's C commands find the correct
      top-level working tree, and shell scripts do not.
      
      Changes:
      
      * When interpreting a relative upward (../) path in cd_to_toplevel,
        prepend the cwd without symlinks, given by /bin/pwd
      * Add tests for cd_to_toplevel and "git pull" in a symlinked
        directory that failed before this fix, plus contrasting scenarios
        that already worked
      Signed-off-by: NMarcel M. Cary <marcel@oak.homeunix.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      08fc0608
    • J
      rebase -i -p: Fix --continue after a merge could not be redone · f5b49ea6
      Johannes Sixt 提交于
      When a merge that has a conflict was rebased, then rebase stopped to let
      the user resolve the conflicts. However, thereafter --continue failed
      because the author-script was not saved. (This is rebase -i's way to
      preserve a commit's authorship.) This fixes it by doing taking the same
      failure route after a merge that is also taken after a normal cherry-pick.
      Signed-off-by: NJohannes Sixt <j6t@kdbg.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f5b49ea6
    • J
      Show a failure of rebase -p if the merge had a conflict · 03c48293
      Johannes Sixt 提交于
      This extends t3409-rebase-preserve-merges by a case where the merge that
      is rebased has a conflict. Therefore, the rebase stops and expects that
      the user resolves the conflict. However, currently rebase --continue
      fails because .git/rebase-merge/author-script is missing.
      
      The test script had allocated two identical clones, but only one of them
      (clone2) was used. Now we use both as indicated in the comment. Also,
      two instances of && was missing in the setup part.
      Signed-off-by: NJohannes Sixt <j6t@kdbg.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      03c48293
  14. 20 12月, 2008 2 次提交
  15. 19 12月, 2008 1 次提交
  16. 15 12月, 2008 4 次提交
  17. 13 12月, 2008 1 次提交
  18. 11 12月, 2008 1 次提交
  19. 10 12月, 2008 2 次提交
    • J
      diff: respect textconv in rewrite diffs · 3aa1f7ca
      Jeff King 提交于
      Currently we just skip rewrite diffs for binary files; this
      patch makes an exception for files which will be textconv'd,
      and actually performs the textconv before generating the
      diff.
      
      Conceptually, rewrite diffs should be in the exact same
      format as the a non-rewrite diff, except that we refuse to
      share any context. Thus it makes very little sense for "git
      diff" to show a textconv'd diff, but for "git diff -B" to
      show "Binary files differ".
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      3aa1f7ca
    • J
      diff: fix handling of binary rewrite diffs · 0c01857d
      Jeff King 提交于
      The current emit_rewrite_diff code always writes a text patch without
      checking whether the content is binary. This means that if you end up with
      a rewrite diff for a binary file, you get lots of raw binary goo in your
      patch.
      
      Instead, if we have binary files, then let's just skip emit_rewrite_diff
      altogether. We will already have shown the "dissimilarity index" line, so
      it is really about the diff contents. If binary diffs are turned off, the
      "Binary files a/file and b/file differ" message should be the same in
      either case. If we do have binary patches turned on, there isn't much
      point in making a less-efficient binary patch that does a total rewrite;
      no human is going to read it, and since binary patches don't apply with
      any fuzz anyway, the result of application should be the same.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0c01857d
  20. 09 12月, 2008 2 次提交
    • D
      git-svn: Make following parents atomic · 553589f7
      Deskin Miller 提交于
      find_parent_branch generates branch@rev type branches when one has to
      look back through SVN history to properly get the history for a branch
      copied from somewhere not already being tracked by git-svn.  If in the
      process of fetching this history, git-svn is interrupted, then when one
      fetches again, it will use whatever was last fetched as the parent
      commit and fail to fetch any more history which it didn't get to before
      being terminated.  This is especially troubling in that different
      git-svn copies of the same SVN repository can end up with different
      commit sha1s, incorrectly showing the history as divergent and
      precluding easy collaboration using git push and fetch.
      
      To fix this, when we initialise the Git::SVN object $gs to search for
      and perhaps fetch history, we check if there are any commits in SVN in
      the range between the current revision $gs is at, and the top revision
      for which we were asked to fill history.  If there are commits we're
      missing in that range, we continue the fetch from the current revision
      to the top, properly getting all history before using it as the parent
      for the branch we're trying to create.
      Signed-off-by: NDeskin Miller <deskinm@umich.edu>
      Acked-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      553589f7
    • J
      gitweb: Fix bug in insert_file() subroutine · 4586864a
      Jakub Narebski 提交于
      In insert_file() subroutine (which is used to insert HTML fragments as
      custom header, footer, hometext (for projects list view), and per
      project README.html (for summary view)) we used:
      
           map(to_utf8, <$fd>);
      
      This doesn't work, and other form has to be used:
      
           map { to_utf8($_) } <$fd>;
      
      Now with test for t9600 added, for $GIT_DIR/README.html.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4586864a
  21. 08 12月, 2008 1 次提交
  22. 06 12月, 2008 1 次提交
  23. 05 12月, 2008 1 次提交
  24. 03 12月, 2008 3 次提交