1. 31 10月, 2005 4 次提交
  2. 30 10月, 2005 4 次提交
    • J
      GIT 0.99.9 · 46774a81
      Junio C Hamano 提交于
      Done in 0.99.9
      ==============
      
      Ports
      ~~~~~
      
      * Cygwin port [HPA].
      
      * OpenBSD build [Merlyn and others].
      
      Fixes
      ~~~~~
      
      * clone request over git native protocol from a repository with
        too many refs did not work; this has been fixed.
      
      * git-daemon got safer for kernel.org use [HPA].
      
      * Extended SHA1 parser was not enforcing uniqueness for
        abbreviated SHA1; this has been fixed.
      
      * http transport does not barf on funny characters in URL.
      
      * The ref naming restrictions have been formalized and the
        coreish refuses to create funny refs; we still need to audit
        importers.  See git-check-ref-format(1).
      
      New Features and Commands
      ~~~~~~~~~~~~~~~~~~~~~~~~~
      
      * .git/config file as a per-repository configuration mechanism,
        and some commands understand it [Linus].  See
        git(7).
      
      * The core.filemode configuration item can be used to make us a
        bit more FAT friendly.  See git(7).
      
      * The extended SHA1 notation acquired Peel-the-onion operator
        ^{type} and ^{}.  See git-rev-parse(1).
      
      * SVN importer [Matthias].  See git-svnimport(1).
      
      * .git/objects/[0-9a-f]{2} directories are created on demand,
        and removed when becomes empty after prune-packed [Linus].
      
      * Filenames output from various commands without -z option are
        quoted when they embed funny characters (TAB and LF) using
        C-style quoting within double-quotes, to match the proposed
        GNU diff/patch notation [me, but many people contributed in
        the discussion].
      
      * git-mv is expected to be a better replacement for git-rename.
        While the latter has two parameter restriction, it acts more
        like the regular 'mv' that can move multiple things to one
        destinatino directory [Josef Weidendorfer].
      
      * git-checkout can take filenames to revert the changes to
        them.  See git-checkout(1)
      
      * The new program git-am is a replacement for git-applymbox that
        has saner command line options and a bit easier to use when a
        patch does not apply cleanly.
      
      * git-ls-remote can show unwrapped onions using ^{} notation, to
        help Cogito to track tags.
      
      * git-merge-recursive backend can merge unrelated projects.
      
      * git-clone over native transport leaves the result packed.
      
      * git-http-fetch issues multiple requests in parallel when
        underlying cURL library supports it [Nick and Daniel].
      
      * git-fetch-pack and git-upload-pack try harder to figure out
        better common commits [Johannes].
      
      * git-read-tree -u removes a directory when it makes it empty.
      
      * git-diff-* records abbreviated SHA1 names of original and
        resulting blob; this sometimes helps to apply otherwise an
        unapplicable patch by falling back to 3-way merge.
      
      * git-format-patch now takes series of from..to rev ranges and
        with '-m --stdout', writes them out to the standard output.
        This can be piped to 'git-am' to implement cheaper
        cherry-picking.
      
      * git-tag takes '-u' to specify the tag signer identity [Linus].
      
      * git-rev-list can take optional pathspecs to skip commits that
        do not touch them (--dense) [Linus].
      
      * Comes with new and improved gitk [Paulus and Linus].
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      46774a81
    • J
      Documentation updates. · 5773c9f2
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5773c9f2
    • J
      52e4478d
    • J
      Teach local-fetch about lazy object directories. · 0ffdbbfe
      Junio C Hamano 提交于
      The latest init-db does not create .git/objects/??/ directories
      anymore and expects the users of the repository to create them
      as they are needed.  local-fetch was not taught about it, which
      broke local cloning with Cogito.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      0ffdbbfe
  3. 29 10月, 2005 21 次提交
  4. 28 10月, 2005 5 次提交
  5. 27 10月, 2005 6 次提交
    • J
      Merge branch 'js-fat' · c1aaa5d9
      Junio C Hamano 提交于
      c1aaa5d9
    • J
      Merge branch 'lt-dense' · 5ef1862a
      Junio C Hamano 提交于
      5ef1862a
    • J
      Merge http://www.kernel.org/pub/scm/gitk/gitk · 1301c6eb
      Junio C Hamano 提交于
      1301c6eb
    • L
      [PATCH] Make "gitk" work better with dense revlists · 8b7e5d76
      Linus Torvalds 提交于
      To generate the diff for a commit, gitk used to do
      
      	git-diff-tree -p -C $p $id
      
      (and same thing to generate filenames, except using just "-r" there) which
      does actually generate the diff from the parent to the $id, exactly like
      it meant to do.
      
      However, that really sucks with --dense, where the "parent" information
      has all been rewritten to point to the previous commit. The diff actually
      works exactly right, but now it's the diff of the _whole_ sequence of
      commits all the way to the previous commit that last changed the file(s)
      that we are looking at.
      
      And that's really not what we want 99.9% of the time, even if it may be
      perfectly sensible. Not only will the diff not actually match the commit
      message, but it will usually be _huge_, and all of it will be totally
      uninteresting to us, since we were only interested in a particular set of
      files.
      
      It also doesn't match what we do when we write the patch to a file.
      
      So this makes gitk just show the diff of _that_ commit.
      
      We might even want to have some way to limit the diff to only the
      filenames we're interested in, but it's often nice to see what else
      changed at the same time, so that's secondary.
      
      The merge diff handling is left alone, although I think that should also
      be changed to only look at what that _particular_ merge did, not what it
      did when compared to the faked-out parents.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8b7e5d76
    • L
      git-rev-list: do not forget non-commit refs · 19a7e715
      Linus Torvalds 提交于
      What happens is that the new logic decides that if it can't look up a
      commit reference (ie "get_commit_reference()" returns NULL), the thing
      must be a pathname.
      
      Fair enough.
      
      But wrong.
      
      The thing is, it may be a perfectly fine ref that _isn't_ a commit. In
      git, you have a tag that points to your PGP key, and in the kernel, I have
      a tag that points to a tree (and a direct ref that points to that tree
      too, for that matter).
      
      So the rule is (as for all the other programs that mix revs and pathnames)
      not that we only accept commit references, but _any_ valid object ref.
      
      If the object then isn't a commit ref, git-rev-list will either ignore it,
      or add it to the list of non-commit objects (if using "--objects").
      
      The solution is to move the "get_sha1()" out of get_commit_reference(),
      and into the callers. In fact, we already _have_ the SHA1 in the case of
      the handle_all() loop, since for_each_ref() will have done it for us, so
      this is the correct thing to do anyway.
      
      This patch (on top of the original one) does exactly that.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      19a7e715
    • L
      git-rev-list: make --dense the default (and introduce "--sparse") · 7b34c2fa
      Linus Torvalds 提交于
      This actually does three things:
      
       - make "--dense" the default for git-rev-list. Since dense is a no-op if
         no filenames are given, this doesn't actually change any historical
         behaviour, but it's logically the right default (if we want to prune on
         filenames, do it fully. The sparse "merge-only" thing may be useful,
         but it's not what you'd normally expect)
      
       - make "git-rev-parse" show the default revision control before it shows
         any pathnames.
      
         This was a real bug, but nobody would ever have noticed, because
         the default thing tends to only make sense for git-rev-list, and
         git-rev-list didn't use to take pathnames.
      
       - it changes "git-rev-list" to match the other commands that take a mix
         of revisions and filenames - it no longer requires the "--" before
         filenames (although you still need to do it if a filename could be
         confused with a revision name, eg "gitk" in the git archive)
      
      This all just makes for much more pleasant and obvous usage. Just doing a
      
      	gitk t/
      
      does the obvious thing: it will show the history as it concerns the "t/"
      subdirectory.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7b34c2fa