1. 31 3月, 2006 1 次提交
  2. 30 3月, 2006 4 次提交
  3. 29 3月, 2006 2 次提交
    • J
      rev-list --boundary · 384e99a4
      Junio C Hamano 提交于
      With the new --boundary flag, the output from rev-list includes
      the UNINTERESING commits at the boundary, which are usually not
      shown.  Their object names are prefixed with '-'.
      
      For example, with this graph:
      
                    C side
                   /
      	A---B---D master
      
      You would get something like this:
      
      	$ git rev-list --boundary --header --parents side..master
      	D B
              tree D^{tree}
              parent B
              ... log message for commit D here ...
              \0-B A
              tree B^{tree}
              parent A
              ... log message for commit B here ...
              \0
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      384e99a4
    • J
      rev-list: memory usage reduction. · 9181ca2c
      Junio C Hamano 提交于
      We do not need to track object refs, neither we need to save commit
      unless we are doing verbose header.  A lot of traversal happens
      inside prepare_revision_walk() these days so setting things up before
      calling that function is necessary.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      Acked-by: NLinus Torvalds <torvalds@osdl.org>
      9181ca2c
  4. 28 3月, 2006 5 次提交
    • J
      rev-list --no-merges: argument parsing fix. · 5cdeae71
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5cdeae71
    • M
      xdiff: Show function names in hunk headers. · acb72577
      Mark Wooding 提交于
      The speed of the built-in diff generator is nice; but the function names
      shown by `diff -p' are /really/ nice.  And I hate having to choose.  So,
      we hack xdiff to find the function names and print them.
      
      xdiff has grown a flag to say whether to dig up the function names.  The
      builtin_diff function passes this flag unconditionally.  I suppose it
      could parse GIT_DIFF_OPTS, but it doesn't at the moment.  I've also
      reintroduced the `function name' into the test suite, from which it was
      removed in commit 3ce8f089.
      
      The function names are parsed by a particularly stupid algorithm at the
      moment: it just tries to find a line in the `old' file, from before the
      start of the hunk, whose first character looks plausible.  Still, it's
      most definitely a start.
      Signed-off-by: NMark Wooding <mdw@distorted.org.uk>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      acb72577
    • J
      Add ALL_LDFLAGS to the git target. · 9c48666a
      Jason Riedy 提交于
      For some reason, I need ALL_LDFLAGS in the git target only on
      AIX.  Once it builds, only one test "fails" on AIX 5.1 with
      1.3.0.rc1, t5500-fetch-pack.sh, but it looks like it's some
      odd tool problem in the tester + my setup and not a real bug.
      Signed-off-by: NJason Riedy <ejr@cs.berkeley.edu>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      9c48666a
    • J
      GIT 1.3.0 rc1 · dff86e28
      Junio C Hamano 提交于
      All of the things that were not in the "master" branch were
      either cooked long enough in "next" without causing problems
      (e.g. insanely fast rename detector or true built-in diff) or
      isolated in a specific subsystem (e.g. tar-tree and svnimport).
      
      So I am clearing the deck to prepare for a 1.3.0.  Remaining
      wrinkles, if any, will be ironed in the "master" branch.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      dff86e28
    • J
      Merge branch ak/svn · 65b5e41e
      Junio C Hamano 提交于
      65b5e41e
  5. 27 3月, 2006 7 次提交
  6. 26 3月, 2006 21 次提交
    • J
      Merge branch 'jc/thin' into next · f4e96f97
      Junio C Hamano 提交于
      * jc/thin:
        git-push: make --thin pack transfer the default.
        gitk: Fix two bugs reported by users
        gitk: Improve appearance of first child links
        gitk: Make downward-pointing arrows end in vertical line segment
        gitk: Don't change cursor at end of layout if find in progress
        gitk: Make commitdata an array rather than a list
        gitk: Fix display of diff lines beginning with --- or +++
        [PATCH] gitk: Make error_popup react to Return
        gitk: Fix a bug in drawing the selected line as a thick line
        gitk: Further speedups
        gitk: Various speed improvements
        gitk: Fix Update menu item
        gitk: Fix clicks on arrows on line ends
        gitk: New improved gitk
        contrib/git-svn: stabilize memory usage for big fetches
      f4e96f97
    • J
      git-push: make --thin pack transfer the default. · 84f11a43
      Junio C Hamano 提交于
      Just in case it has problems, you can say "git push --no-thin".
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      84f11a43
    • J
      Merge branches 'jc/clone' and 'jc/name' · be1295d1
      Junio C Hamano 提交于
      * jc/clone:
        git-clone: typofix.
        clone: record the remote primary branch with remotes/$origin/HEAD
        revamp git-clone (take #2).
        revamp git-clone.
        fetch,parse-remote,fmt-merge-msg: refs/remotes/* support
      
      * jc/name:
        sha1_name: make core.warnambiguousrefs the default.
        sha1_name: warning ambiguous refs.
        get_sha1_basic(): try refs/... and finally refs/remotes/$foo/HEAD
        core.warnambiguousrefs: warns when "name" is used and both "name" branch and tag exists.
      be1295d1
    • J
      Merge branch 'jc/merge' · 692c7fc9
      Junio C Hamano 提交于
      * jc/merge:
        git-merge knows some strategies want to skip trivial merges
      692c7fc9
    • J
      Merge branch 'lt/diffgen' into next · b9aa1f9e
      Junio C Hamano 提交于
      * lt/diffgen:
        true built-in diff: run everything in-core.
      b9aa1f9e
    • A
      git-svnimport: if a limit is specified, respect it · a7cfb4a4
      Anand Kumria 提交于
      git-svnimport will import the same revision over and over again if a
      limit (-l <rev>) has been specified. Instead if that revision has already
      been processed, exit with an up-to-date message.
      Signed-off-by: NAnand Kumria <wildfire@progsoc.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a7cfb4a4
    • J
      Merge git://git.kernel.org/pub/scm/gitk/gitk · 9086a18c
      Junio C Hamano 提交于
      * git://git.kernel.org/pub/scm/gitk/gitk:
        gitk: Fix two bugs reported by users
        gitk: Improve appearance of first child links
        gitk: Make downward-pointing arrows end in vertical line segment
        gitk: Don't change cursor at end of layout if find in progress
        gitk: Make commitdata an array rather than a list
        gitk: Fix display of diff lines beginning with --- or +++
        [PATCH] gitk: Make error_popup react to Return
        gitk: Fix a bug in drawing the selected line as a thick line
        gitk: Further speedups
        gitk: Various speed improvements
        gitk: Fix Update menu item
        gitk: Fix clicks on arrows on line ends
        gitk: New improved gitk
      9086a18c
    • J
      true built-in diff: run everything in-core. · cebff98d
      Junio C Hamano 提交于
      This stops using temporary files when we are using the built-in
      diff (including the complete rewrite).
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cebff98d
    • E
      contrib/git-svn: stabilize memory usage for big fetches · 03823184
      Eric Wong 提交于
      We should be safely able to import histories with thousands
      of revisions without hogging up lots of memory.
      
      With this, we lose the ability to autocorrect mistakes when
      people specify revisions in reverse, but it's probably no longer
      a problem since we only have one method of log parsing nowadays.
      
      I've added an extra check to ensure that revision numbers do
      increment.
      
      Also, increment the version number to 0.11.0.  I really should
      just call it 1.0 soon...
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      03823184
    • J
      Merge branch 'ew/email' into next · dad7230a
      Junio C Hamano 提交于
      * ew/email:
        send-email: lazy-load Email::Valid and make it optional
        send-email: try to order messages in email clients more correctly
        send-email: Change from Mail::Sendmail to Net::SMTP
        send-email: use built-in time() instead of /bin/date '+%s'
      dad7230a
    • J
      Merge branch 'lt/diffgen' into next · 9acf322d
      Junio C Hamano 提交于
      * lt/diffgen:
        built-in diff: minimum tweaks
        builtin-diff: \No newline at end of file.
        Use a *real* built-in diff generator
      9acf322d
    • J
      Merge branch 'rs/tar-tree' into next · 48d6e97a
      Junio C Hamano 提交于
      * rs/tar-tree:
        tar-tree: Use the prefix field of a tar header
        tar-tree: Remove obsolete code
        tar-tree: Use write_entry() to write the archive contents
        tar-tree: Introduce write_entry()
        tar-tree: Use SHA1 of root tree for the basedir
        git-apply: safety fixes
        Removed bogus "<snap>" identifier.
        Clarify and expand some hook documentation.
        commit-tree: check return value from write_sha1_file()
        send-email: Identify author at the top when sending e-mail
        Format tweaks for asciidoc.
      48d6e97a
    • E
      send-email: lazy-load Email::Valid and make it optional · 567ffeb7
      Eric Wong 提交于
      It's not installed on enough machines, and is overkill most of
      the time.  We'll fallback to a very basic regexp just in case,
      but nothing like the monster regexp Email::Valid has to offer :)
      
      Small cleanup from Merlyn.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      567ffeb7
    • E
      send-email: try to order messages in email clients more correctly · a5370b16
      Eric Wong 提交于
      If --no-chain-reply-to is set, patches may not always be ordered
      correctly in email clients.  This patch makes sure each email
      sent from a different second.
      
      I chose to start with a time (slightly) in the past because
      those are probably more likely in real-world usage and spam
      filters might be more tolerant of them.
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      a5370b16
    • E
      send-email: Change from Mail::Sendmail to Net::SMTP · 4bc87a28
      Eric Wong 提交于
      Net::SMTP is in the base Perl distribution, so users are more
      likely to have it.  Net::SMTP also allows reusing the SMTP
      connection, so sending multiple emails is faster.
      
      [jc: tweaked X-Mailer further while we are at it.]
      Signed-off-by: NEric Wong <normalperson@yhbt.net>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4bc87a28
    • E
      72095d5c
    • J
      built-in diff: minimum tweaks · 3ce8f089
      Junio C Hamano 提交于
      This fixes up a couple of minor issues with the real built-in
      diff to be more usable:
      
       - Omit ---/+++ header unless we emit diff output;
      
       - Detect and punt binary diff like GNU does;
      
       - Honor GIT_DIFF_OPTS minimally (only -u<number> and
         --unified=<number> are currently supported);
      
       - Omit line count of 1 from "@@ -l,k +m,n @@" hunk header
         (i.e. when k == 1 or n == 1)
      
       - Adjust testsuite for the lack of -p support.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      3ce8f089
    • L
      builtin-diff: \No newline at end of file. · 621c53cc
      Linus Torvalds 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      621c53cc
    • L
      Use a *real* built-in diff generator · 3443546f
      Linus Torvalds 提交于
      This uses a simplified libxdiff setup to generate unified diffs _without_
      doing  fork/execve of GNU "diff".
      
      This has several huge advantages, for example:
      
      Before:
      
      	[torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null
      
      	real    0m24.818s
      	user    0m13.332s
      	sys     0m8.664s
      
      After:
      
      	[torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null
      
      	real    0m4.563s
      	user    0m2.944s
      	sys     0m1.580s
      
      and the fact that this should be a lot more portable (ie we can ignore all
      the issues with doing fork/execve under Windows).
      
      Perhaps even more importantly, this allows us to do diffs without actually
      ever writing out the git file contents to a temporary file (and without
      any of the shell quoting issues on filenames etc etc).
      
      NOTE! THIS PATCH DOES NOT DO THAT OPTIMIZATION YET! I was lazy, and the
      current "diff-core" code actually will always write the temp-files,
      because it used to be something that you simply had to do. So this current
      one actually writes a temp-file like before, and then reads it into memory
      again just to do the diff. Stupid.
      
      But if this basic infrastructure is accepted, we can start switching over
      diff-core to not write temp-files, which should speed things up even
      further, especially when doing big tree-to-tree diffs.
      
      Now, in the interest of full disclosure, I should also point out a few
      downsides:
      
       - the libxdiff algorithm is different, and I bet GNU diff has gotten a
         lot more testing. And the thing is, generating a diff is not an exact
         science - you can get two different diffs (and you will), and they can
         both be perfectly valid. So it's not possible to "validate" the
         libxdiff output by just comparing it against GNU diff.
      
       - GNU diff does some nice eye-candy, like trying to figure out what the
         last function was, and adding that information to the "@@ .." line.
         libxdiff doesn't do that.
      
       - The libxdiff thing has some known deficiencies. In particular, it gets
         the "\No newline at end of file" case wrong. So this is currently for
         the experimental branch only. I hope Davide will help fix it.
      
      That said, I think the huge performance advantage, and the fact that it
      integrates better is definitely worth it. But it should go into a
      development branch at least due to the missing newline issue.
      
      Technical note: this is based on libxdiff-0.17, but I did some surgery to
      get rid of the extraneous fat - stuff that git doesn't need, and seriously
      cutting down on mmfile_t, which had much more capabilities than the diff
      algorithm either needed or used. In this version, "mmfile_t" is just a
      trivial <pointer,length> tuple.
      
      That said, I tried to keep the differences to simple removals, so that you
      can do a diff between this and the libxdiff origin, and you'll basically
      see just things getting deleted. Even the mmfile_t simplifications are
      left in a state where the diffs should be readable.
      
      Apologies to Davide, whom I'd love to get feedback on this all from (I
      wrote my own "fill_mmfile()" for the new simpler mmfile_t format: the old
      complex format had a helper function for that, but I did my surgery with
      the goal in mind that eventually we _should_ just do
      
      	mmfile_t mf;
      
      	buf = read_sha1_file(sha1, type, &size);
      	mf->ptr = buf;
      	mf->size = size;
      	.. use "mf" directly ..
      
      which was really a nightmare with the old "helpful" mmfile_t, and really
      is that easy with the new cut-down interfaces).
      
      [ Btw, as any hawk-eye can see from the diff, this was actually generated
        with itself, so it is "self-hosting". That's about all the testing it
        has gotten, along with the above kernel diff, which eye-balls correctly,
        but shows the newline issue when you double-check it with "git-apply" ]
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      3443546f
    • R
      tar-tree: Use the prefix field of a tar header · 4c691724
      Rene Scharfe 提交于
      ... to store parts of the path, if possible.  This allows us to avoid
      writing extended headers in certain cases (long pathes can only be
      split at '/' chars).
      
      Also adds a file to the test repo with a 100 chars long directory name.
      Even old versions of tar that don't understand POSIX extended headers
      should be able to handle this testcase.
      
      Btw.: The longest path in the kernel tree currently has 70 chars.
      Together with a 30 chars long prefix this would already cross the
      field limit of 100 chars.
      Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4c691724
    • R
      tar-tree: Remove obsolete code · 86da1c56
      Rene Scharfe 提交于
      Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      86da1c56