1. 12 2月, 2006 11 次提交
    • J
      Merge branch 'pb/repo' · af8c28e1
      Junio C Hamano 提交于
      * pb/repo:
        Add support for explicit type specifiers when calling git-repo-config
      af8c28e1
    • J
      Merge branch 'jc/fixdiff' · c611db19
      Junio C Hamano 提交于
      * jc/fixdiff:
        diff-tree: do not default to -c
      c611db19
    • J
      Avoid using "git-var -l" until it gets fixed. · 4890f62b
      Junio C Hamano 提交于
      This is to be nicer to people with unusable GECOS field.
      
      "git-var -l" is currently broken in that when used by a user who
      does not have a usable GECOS field and has not corrected it by
      exporting GIT_COMMITTER_NAME environment variable it dies when
      it tries to output GIT_COMMITTER_IDENT (same thing for AUTHOR).
      
      "git-pull" used "git-var -l" only because it needed to get a
      configuration variable before "git-repo-config --get" was
      introduced.  Use the latter tool designed exactly for this
      purpose.
      
      "git-sh-setup" used "git-var GIT_AUTHOR_IDENT" without actually
      wanting to use its value.  The only purpose was to cause the
      command to check and barf if the repository format version
      recorded in the $GIT_DIR/config file is too new for us to deal
      with correctly.  Instead, use "repo-config --get" on a random
      property and see if it die()s, and check if the exit status is
      128 (comes from die -- missing variable is reported with exit
      status 1, so we can tell that case apart).
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4890f62b
    • P
      Add support for explicit type specifiers when calling git-repo-config · 7162dff3
      Petr Baudis 提交于
      Currently, git-repo-config will just return the raw value of option
      as specified in the config file; this makes things difficult for scripts
      calling it, especially if the value is supposed to be boolean.
      
      This patch makes it possible to ask git-repo-config to check if the option
      is of the given type (int or bool) and write out the value in its
      canonical form. If you do not pass --int or --bool, the behaviour stays
      unchanged and the raw value is emitted.
      
      This also incidentally fixes the segfault when option with no value is
      encountered.
      
      [jc: tweaked the option parsing a bit to make it easier to see
       that the patch does not change anything but the type stuff in
       the diff output.  Also changed to avoid "foo ? : bar" construct. ]
      Signed-off-by: NPetr Baudis <pasky@suse.cz>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7162dff3
    • J
      diff-tree: do not default to -c · 6932c78c
      Junio C Hamano 提交于
      Marco says it breaks qgit.  This makes the flags a bit more
      orthogonal.
      
        $ git-diff-tree -r --abbrev ca18
      
          No output from this command because you asked to skip merge by
          not having -m there.
      
        $ git-diff-tree -r -m --abbrev ca18
        ca182053
        :100644 100644 538d21d... 59042d1... M	Makefile
        :100644 100644 410b758... 6c47c3a... M	entry.c
        ca182053
        :100644 100644 30479b4... 59042d1... M	Makefile
      
          The same "independent sets of diff" as before without -c.
      
        $ git-diff-tree -r -m -c --abbrev ca18
        ca182053
        ::100644 100644 100644 538d21d... 30479b4... 59042d1... MM	Makefile
      
          Combined.
      
        $ git-diff-tree -r -c --abbrev ca18
        ca182053
        ::100644 100644 100644 538d21d... 30479b4... 59042d1... MM	Makefile
      
          Asking for combined without -m does not make sense, so -c
          implies -m.
      
      We need to supply -c as default to whatchanged, which is a
      one-liner.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      6932c78c
    • J
      t5500: adjust to change in pack-object reporting behaviour. · 16139f90
      Junio C Hamano 提交于
      Now pack-object is not as chatty when its stderr is not connected
      to a terminal, so the test needs to be adjusted for that.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      16139f90
    • J
      Only call git-rerere if $GIT_DIR/rr-cache exists. · 1536dd9c
      Junio C Hamano 提交于
      Johannes noticed that git-rerere depends on Digest.pm, and if
      one does not use the command, one can live without it.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      1536dd9c
    • C
      Use a relative path for SVN importing · 7bbdeaa9
      Christian Biesinger 提交于
      The absolute path (with the leading slash) breaks SVN importing,
      because it then looks for /trunk/... instead of /svn/trunk/...
      (in my case, the repository URL was https://servername/svn/)
      Signed-off-by: NChristian Biesinger <cbiesinger@web.de>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7bbdeaa9
    • J
      fetch-clone progress: finishing touches. · 21fcd1bd
      Junio C Hamano 提交于
      This makes fetch-pack also report the progress of packing part.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      21fcd1bd
    • L
      Fix fetch-clone in the presense of signals · 98deeaa8
      Linus Torvalds 提交于
      We shouldn't fail a fetch just because a signal might have interrupted
      the read.
      
      Normally, we don't install any signal handlers, so EINTR really shouldn't
      happen. That said, really old versions of Linux will interrupt an
      interruptible system call even for signals that turn out to be ignored
      (SIGWINCH is the classic example - resizing your xterm would cause it).
      The same might well be true elsewhere too.
      
      Also, since receive_keep_pack() doesn't control the caller, it can't know
      that no signal handlers exist.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      98deeaa8
    • L
      Make "git clone" pack-fetching download statistics better · c548cf4e
      Linus Torvalds 提交于
      Average it out over a few events to make the numbers stable, and fix the
      silly usec->binary-ms conversion.
      
      Yeah, yeah, it's arguably eye-candy to keep the user calm, but let's do
      that right.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      c548cf4e
  2. 11 2月, 2006 7 次提交
    • L
      Make "git clone" less of a deathly quiet experience · 5ee2ad65
      Linus Torvalds 提交于
      It used to be that "git-unpack-objects" would give nice percentages, but
      now that we don't unpack the initial clone pack any more, it doesn't. And
      I'd love to do that nice percentage view in the pack objects downloader
      too, but the thing doesn't even read the pack header, much less know how
      much it's going to get, so I was lazy and didn't.
      
      Instead, it at least prints out how much data it's gotten, and what the
      packing speed is. Which makes the user realize that it's actually doing
      something useful instead of sitting there silently (and if the recipient
      knows how large the final result is, he can at least make a guess about
      when it migt be done).
      
      So with this patch, I get something like this on my DSL line:
      
      	[torvalds@g5 ~]$ time git clone master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 clone-test
      	Packing 188543 objects
      	  48.398MB  (154 kB/s)
      
      where even the speed approximation seems to be roughtly correct (even
      though my algorithm is a truly stupid one, and only really gives "speed in
      the last half second or so").
      
      Anyway, _something_ like this is definitely needed. It could certainly be
      better (if it showed the same kind of thing that git-unpack-objects did,
      that would be much nicer, but would require parsing the object stream as
      it comes in). But this is  big step forward, I think.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5ee2ad65
    • J
      Define GIT_(AUTHOR|COMMITTER)_(NAME|EMAIL) to known values. · 29e55cd5
      Junio C Hamano 提交于
      Without these, running tests with an account with empty gecos
      field would fail.
      
      We might want to loosen error from "git-var -l" (but not
      "git-var GIT_AUTHOR_NAME") later, but that is more or less an
      independent issue.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      29e55cd5
    • J
      Merge branch 'lt/diff-tree' · 3f6726e1
      Junio C Hamano 提交于
      * lt/diff-tree:
        combine-diff: Record diff status a bit more faithfully
        find_unique_abbrev() simplification.
        combine-diff: move formatting logic to show_combined_diff()
        combined-diff: use diffcore before intersecting paths.
        diff-tree -c raw output
      3f6726e1
    • J
      git-commit -v: have patch at the end. · 9ae6be80
      Junio C Hamano 提交于
      It was pointed out that otherwise more important summary
      information prefixed with '#' would become prone to be missed.
      
      Also instead of chopping at the first '^---$' line, stop at the
      first 'diff --git a/' line.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      9ae6be80
    • J
      rev-list: default to abbreviate merge parent names under --pretty. · 9da5c2f0
      Junio C Hamano 提交于
      When we prettyprint commit log messages, merge parent names were
      often very long and there was no way to abbreviate it.
      
      This changes them to be abbreviated by default, and non-default
      abbreviations can be specified with --no-abbrev or --abbrev=<n>
      options.
      
      Note that this affects only the prettyprinted parent names.  The
      output from --show-parents is meant for machine consumption and
      is not affected by this flag.
      9da5c2f0
    • N
      delta micro optimization · 39556fbd
      Nicolas Pitre 提交于
      My kernel work habit made me look at the generated assembly for the
      delta code, and one obvious albeit small improvement is this patch.
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      39556fbd
    • N
      count-delta.c: comment fixes · e7ad4a9c
      Nicolas Pitre 提交于
      There was a stale comment that explains why the old code could
      undercount when delta data copied things around inside detination
      buffer.  We do not use that kind of delta, so the comment does
      not apply.
      e7ad4a9c
  3. 10 2月, 2006 13 次提交
    • J
      Merge branch 'jc/empty-commit' · 4d44cb19
      Junio C Hamano 提交于
      * jc/empty-commit:
        t6000: fix a careless test library add-on.
        Do not allow empty name or email.
      4d44cb19
    • J
      combine-diff: Record diff status a bit more faithfully · d416df88
      Junio C Hamano 提交于
      This shows "new file mode XXXX" and "deleted file mode XXXX"
      lines like two-way diff-patch output does, by checking the
      status from each parent.
      
      The diff-raw output for combined diff is made a bit uglier by
      showing diff status letters with each parent.  While most of the
      case you would see "MM" in the output, an Evil Merge that
      touches a path that was added by inheriting from one parent is
      possible and it would be shown like these:
      
          $ git-diff-tree --abbrev -c HEAD
          2d7ca89675eb8888b0b88a91102f096d4471f09f
          ::000000 000000 100644 0000000... 0000000... 31dd686... AA	b
          ::000000 100644 100644 0000000... 6c884ae... c6d4fa8... AM	d
          ::100644 100644 100644 4f7cbe7... f8c295c... 19d5d80... RR	e
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d416df88
    • J
      find_unique_abbrev() simplification. · 297a1aad
      Junio C Hamano 提交于
      Earlier it did not grok the 0{40} SHA1 very well, but what it
      needed to do was to find the shortest 0{N} that is not used as a
      valid object name to be consistent with the way names of valid
      objects are abbreviated.  This makes some users simpler.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      297a1aad
    • J
      git-status -v · cf7bb589
      Junio C Hamano 提交于
      This revamps the git-status command to take the same set of
      parameters as git commit.  It gives a preview of what is being
      committed with that command.  With -v flag, it shows the diff
      output between the HEAD commit and the index that would be
      committed if these flags were given to git-commit command.
      
      git-commit also acquires -v flag (it used to mean "verify" but
      that is the default anyway and there is --no-verify to turn it
      off, so not much is lost), which uses the updated git-status -v
      to seed the commit log buffer.  This is handy for writing a log
      message while reviewing the changes one last time.
      
      Now, git-commit and git-status are internally share the same
      implementation.
      
      Unlike previous git-commit change, this uses a temporary index
      to prepare the index file that would become the real index file
      after a successful commit, and moves it to the real index file
      once the commit is actually made.  This makes it safer than the
      previous scheme, which stashed away the original index file and
      restored it after an aborted commit.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cf7bb589
    • J
      Merge branch 'jc/ls-files-o' · 4dc870d9
      Junio C Hamano 提交于
      * jc/ls-files-o:
        ls-files: honour per-directory ignore file from higher directories.
      4dc870d9
    • J
      count-delta.c: Match the delta data semantics change in version 3. · 91c76743
      Junio C Hamano 提交于
      This matches the count_delta() logic to the change previous
      commit introduces to patch_delta().
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      91c76743
    • N
      remove delta-against-self bit · d60fc1c8
      Nicolas Pitre 提交于
      After experimenting with code to add the ability to encode a delta
      against part of the deltified file, it turns out that resulting packs
      are _bigger_ than when this ability is not used.  The raw delta output
      might be smaller, but it doesn't compress as well using gzip with a
      negative net saving on average.
      
      Said bit would in fact be more useful to allow for encoding the copying
      of chunks larger than 64KB providing more savings with large files.
      This will correspond to packs version 3.
      
      While the current code still produces packs version 2, it is made future
      proof so pack versions 2 and 3 are accepted.  Any pack version 2 are
      compatible with version 3 since the redefined bit was never used before.
      When enough time has passed, code to use that bit to produce version 3
      packs could be added.
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d60fc1c8
    • J
      stat() for existence in safe_create_leading_directories() · 67d42212
      Jason Riedy 提交于
      Use stat() to explicitly check for existence rather than
      relying on the non-portable EEXIST error in sha1_file.c's
      safe_create_leading_directories().  There certainly are
      optimizations possible, but then the code becomes almost
      the same as that in coreutil's lib/mkdir-p.c.
      
      Other uses of EEXIST seem ok.  Tested on Solaris 8, AIX 5.2L,
      and a few Linux versions.  AIX has some unrelated (I think)
      failures right now; I haven't tried many recent gits there.
      Anyone have an old Ultrix box to break everything?  ;)
      
      Also remove extraneous #includes.  Everything's already in
      git-compat-util.h, included through cache.h.
      Signed-off-by: NJason Riedy <ejr@cs.berkeley.edu>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      67d42212
    • J
      combine-diff: move formatting logic to show_combined_diff() · 0a798076
      Junio C Hamano 提交于
      This way, diff-files can make use of it.  Also implement the
      full suite of what diff_flush_raw() supports just for
      consistency.  With this, 'diff-tree -c -r --name-status' would
      show what is expected.
      
      There is no way to get the historical output (useful for
      debugging and low-level Plumbing work) anymore, so tentatively
      it makes '-m' to mean "do not combine and show individual diffs
      with parents".
      
      diff-files matches diff-tree to produce raw output for -c.  For
      textual combined diff, use -p -c.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      0a798076
    • J
      call git_config() after setup_git_directory() · ce1610ea
      Junio C Hamano 提交于
      If you call setup_git_directory() to work from a subdirectory,
      that should be run first before running git_config().  Otherwise
      you would not read the configuration file from the correct place.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ce1610ea
    • J
      combined-diff: use diffcore before intersecting paths. · 5b236832
      Junio C Hamano 提交于
      This is needed to make "diff-tree -c -M" to work semi-sensibly.
      Otherwise rename detection, pickaxe and friends would never be
      invoked.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5b236832
    • J
      Add --diff-filter= documentation paragraph · 147cf317
      Jon Loeliger 提交于
      Signed-off-by: NJon Loeliger <jdl@jdl.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      147cf317
    • L
      diff-tree -c raw output · ee638024
      Linus Torvalds 提交于
      NOTE! This makes "-c" be the default, which effectively means that merges 
      are never ignored any more, and "-m" is a no-op. So it changes semantics.
      
      I would also like to make "--cc" the default if you do patches, but didn't 
      actually do that.
      
      The raw output format is not wonderfully pretty, but it's distinguishable 
      from a "normal patch" in that a normal patch with just one parent has just 
      one colon at the beginning, while a multi-parent raw diff has <n> colons 
      for <n> parents.
      
      So now, in the kernel, when you do
      
      	git-diff-tree cce0cac125623f9b68f25dd1350f6d616220a8dd
      
      (to see the manual ARM merge that had a conflict in arch/arm/Kconfig), you 
      get
      
      	cce0cac125623f9b68f25dd1350f6d616220a8dd
      	::100644 100644 100644 4a63a8e2e45247a11c068c6ed66c6e7aba29ddd9 77eee38762d69d3de95ae45dd9278df9b8225e2c 2f61726d2f4b636f6e66696700dbf71a59dad287       arch/arm/Kconfig
      
      ie you see two colons (two parents), then three modes (parent modes 
      followed by result mode), then three sha1s (parent sha1s followed by
      result sha1).
      
      Which is pretty close to the normal raw diff output.
      
      Cool/stupid exercise:
      
      	$ git-whatchanged | grep '^::' | cut -f2- | sort |
      	  uniq -c | sort -n | less -S
      
      will show which files have needed the most file-level merge conflict
      resolution. Useful? Probably not. But kind of interesting.
      
      For the kernel, it's
      
           ....
           10 arch/ia64/Kconfig
           11 drivers/scsi/Kconfig
           12 drivers/net/Makefile
           17 include/linux/libata.h
           18 include/linux/pci_ids.h
           23 drivers/net/Kconfig
           24 drivers/scsi/libata-scsi.c
           28 drivers/scsi/libata-core.c
           43 MAINTAINERS
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ee638024
  4. 09 2月, 2006 3 次提交
  5. 08 2月, 2006 4 次提交
  6. 07 2月, 2006 2 次提交