1. 18 4月, 2012 2 次提交
    • J
      builtin/merge.c: remove "remoteheads" global variable · 4c57bd27
      Junio C Hamano 提交于
      Instead pass it around starting from the toplevel cmd_merge()
      as an explicit parameter.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4c57bd27
    • M
      merge tests: octopus with redundant parents · 833abdc9
      Michał Kiedrowicz 提交于
      This happens when git merge is run to merge multiple commits that are
      descendants of current HEAD (or are HEAD).  We've hit this while updating
      master to origin/master but accidentaly we called (while being on master):
      
      	$ git merge master origin/master
      
      Here is a minimal testcase:
      
      	$ git init a && cd a
      	$ echo a >a && git add a
      	$ git commit -minitial
      	$ echo b >a && git add a
      	$ git commit -msecond
      	$ git checkout master^
      
      	$ git merge master master
      	Fast-forwarding to: master
      	Already up-to-date with master
      	Merge made by the 'octopus' strategy.
      	 a |    2 +-
      	  1 files changed, 1 insertions(+), 1 deletions(-)
      
      	$ git cat-file commit HEAD
      	tree eebfed94e75e7760540d1485c740902590a00332
      	parent bd679e85202280b263e20a57639a142fa14c2c64
      	author Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100
      	committer Michał Kiedrowicz <michal.kiedrowicz@gmail.com> 1329132996 +0100
      
      	Merge branches 'master' and 'master' into HEAD
      Signed-off-by: NMichał Kiedrowicz <michal.kiedrowicz@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      833abdc9
  2. 11 4月, 2012 1 次提交
  3. 10 4月, 2012 8 次提交
  4. 03 4月, 2012 2 次提交
  5. 31 3月, 2012 1 次提交
  6. 27 3月, 2012 7 次提交
  7. 24 3月, 2012 1 次提交
  8. 21 3月, 2012 5 次提交
  9. 16 3月, 2012 1 次提交
    • J
      fetch/receive: remove over-pessimistic connectivity check · d21c463d
      Junio C Hamano 提交于
      Git 1.7.8 introduced an object and history re-validation step after
      "fetch" or "push" causes new history to be added to a receiving
      repository. This is to protect a malicious server or pushing client from
      corrupting the repository by taking advantage of an existing corrupt
      object that is unconnected to existing history.
      
      But this check is way over-pessimistic.  During "fetch" or "receive-pack"
      (the server side of "push"), unpack-objects and index-pack already
      validate individual objects that are received, and the only thing we would
      want to catch are corrupted objects that already happen to exist in our
      repository but are not referenced from our refs.  Such objects must have
      been written by an earlier run of our codepaths that write out loose
      objects or packfiles, and they must have done the validation of individual
      objects when they did so.  The only thing left to worry about is the
      connectivity integrity, which can be checked with "rev-list --objects",
      which is much cheaper.  We have been paying the 5x to 8x runtime overhead
      the --verify-objects often adds for no real gain.
      
      Revert check_everything_connected() not to use this over-pessimistic
      check.
      
      Credit goes to Nguyễn Thái Ngọc Duy, who originally identified the
      performance regression and endured multiple rounds of reviews to fix it.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      d21c463d
  10. 13 3月, 2012 6 次提交
    • J
      Git 1.7.9.4 · a4603481
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a4603481
    • J
      Merge branch 'tr/maint-bundle-boundary' into maint · 92b7aacb
      Junio C Hamano 提交于
      "git bundle" did not record boundary commits correctly when there
      are many of them.
      
      By Thomas Rast
      * tr/maint-bundle-boundary:
        bundle: keep around names passed to add_pending_object()
        t5510: ensure we stay in the toplevel test dir
        t5510: refactor bundle->pack conversion
      92b7aacb
    • J
      Merge branch 'jc/maint-diff-patch-header' into maint · fce8b5d8
      Junio C Hamano 提交于
      "git diff-index" and its friends at the plumbing level showed the
      "diff --git" header and nothing else for a path whose cached stat
      info is dirty without actual difference when asked to produce a
      patch. This was a longstanding bug that we could have fixed long
      time ago.
      
      By Junio C Hamano
      * jc/maint-diff-patch-header:
        diff -p: squelch "diff --git" header for stat-dirty paths
        t4011: illustrate "diff-index -p" on stat-dirty paths
        t4011: modernise style
      fce8b5d8
    • J
      Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext' into maint · f629c233
      Junio C Hamano 提交于
      "gitweb" did use quotemeta() to prepare search string when asked to
      do a fixed-string project search, but did not use it by mistake and
      used the user-supplied string instead.
      
      By Jakub Narebski
      * jn/maint-do-not-match-with-unsanitized-searchtext:
        gitweb: Fix fixed string (non-regexp) project search
      f629c233
    • J
      Merge branch 'jc/am-3-nonstandard-popt' into maint · b91a13bb
      Junio C Hamano 提交于
      The code to synthesize the fake ancestor tree used by 3-way merge
      fallback in "git am" was not prepared to read a patch created with
      a non-standard -p<num> value.
      
      * jc/am-3-nonstandard-popt:
        test: "am -3" can accept non-standard -p<num>
        am -3: allow nonstandard -p<num> option
      b91a13bb
    • M
      config: report errors at the EOL with correct line number · 4b340593
      Martin Stenberg 提交于
      A section in a config file with a missing "]" reports the next line
      as bad, same goes to a value with a missing end quote.
      
      This happens because the error is not detected until the end of the
      line, when line number is already increased. Fix this by decreasing
      line number by one for these cases.
      Signed-off-by: NMartin Stenberg <martin@gnutiken.se>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4b340593
  11. 10 3月, 2012 2 次提交
    • J
      fast-import: don't allow 'ls' of path with empty components · 178e1dea
      Jonathan Nieder 提交于
      As the fast-import manual explains:
      
      	The value of <path> must be in canonical form. That is it must
      	not:
      	. contain an empty directory component (e.g. foo//bar is invalid),
      	. end with a directory separator (e.g. foo/ is invalid),
      	. start with a directory separator (e.g. /foo is invalid),
      
      Unfortunately the "ls" command accepts these invalid syntaxes and
      responds by declaring that the indicated path is missing.  This is too
      subtle and causes importers to silently misbehave; better to error out
      so the operator knows what's happening.
      
      The C, R, and M commands already error out for such paths.
      Reported-by: NAndrew Sayers <andrew-git@pileofstuff.org>
      Analysis-by: NDavid Barr <davidbarr@google.com>
      Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
      178e1dea
    • J
      fast-import: leakfix for 'ls' of dirty trees · c27e559d
      Jonathan Nieder 提交于
      When the chosen directory has changed since it was last written to
      pack, "tree_content_get" makes a deep copy of its content to scribble
      on while computing the tree name, which we forgot to free.
      
      This leak has been present since the 'ls' command was introduced in
      v1.7.5-rc0~3^2~33 (fast-import: add 'ls' command, 2010-12-02).
      Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
      c27e559d
  12. 09 3月, 2012 1 次提交
  13. 07 3月, 2012 3 次提交