1. 11 1月, 2007 2 次提交
  2. 10 1月, 2007 1 次提交
  3. 08 1月, 2007 1 次提交
  4. 07 1月, 2007 1 次提交
  5. 05 1月, 2007 2 次提交
    • J
      git-remote · e194cd1e
      Junio C Hamano 提交于
      It might be handy to have a single command that helps you manage
      your configuration that relates to downloading from remote
      repositories.  This currently does only about 20% of what I want
      it to do.
      
      	$ git remote
      
      shows the list of 'remotes' you have defined somewhere, and
      
      	$ git remote origin
      
      shows the details about the named remote (in this case
      "origin").  How the branches are tracked, if you have a
      tracking branch that is stale, etc.
      
      	$ git add another git://git.kernel.org/pub/...
      
      defines the default remote.another.url and remote.another.fetch
      entries just like a clone does; you can say "git fetch another"
      afterwards.
      
      For it to be useful, I think it should be enhanced to:
      
       - check overlaps of tracking branches and warn;
      
       - offer to remove stale tracking branches in one go;
      
       - offer ways to remove or rename remote;
      
       - offer ways to update an existing remote, perhaps have an
         interactive mode;
      
      Other enhancements might be also possible, but I do not think of
      anything that is absolutely necessary other than the above right
      now.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e194cd1e
    • R
      Make check target depend on common-cmds.h · 7c4c9f4c
      René Scharfe 提交于
      This fixes sparse complaining about a missing include file
      if 'make check' is run on clean sources.
      Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7c4c9f4c
  6. 31 12月, 2006 1 次提交
    • S
      Force core.filemode to false on Cygwin. · c869753e
      Shawn O. Pearce 提交于
      Many users have noticed that core.filemode doesn't appear to be
      automatically set right on Cygwin when using a repository stored
      on NTFS.  The issue is that Cygwin and NTFS correctly supports
      the executable mode bit, and Git properly detected that, but most
      native Windows applications tend to create files such that Cygwin
      sees the executable bit set when it probably shouldn't be.
      
      This is especially bad if the user's favorite editor deletes the
      file then recreates it whenever they save (vs. just overwriting)
      as now a file that was created with mode 0644 by checkout-index
      appears to have mode 0755.
      
      So we introduce NO_TRUSTABLE_FILEMODE, settable at compile time.
      Setting this option forces core.filemode to false, even if the
      detection code would have returned true.  This option should be
      enabled by default on Cygwin.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      c869753e
  7. 28 12月, 2006 2 次提交
  8. 27 12月, 2006 1 次提交
    • S
      Create 'git gc' to perform common maintenance operations. · 30f610b7
      Shawn O. Pearce 提交于
      Junio asked for a 'git gc' utility which users can execute on a
      regular basis to perform basic repository actions such as:
      
       * pack-refs --prune
       * reflog expire
       * repack -a -d
       * prune
       * rerere gc
      
      So here is a command which does exactly that.  The parameters fed
      to reflog's expire subcommand can be chosen by the user by setting
      configuration options in .git/config (or ~/.gitconfig), as users may
      want different expiration windows for each repository but shouldn't
      be bothered to remember what they are all of the time.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      30f610b7
  9. 24 12月, 2006 2 次提交
  10. 23 12月, 2006 1 次提交
  11. 22 12月, 2006 1 次提交
  12. 21 12月, 2006 1 次提交
    • J
      git reflog expire · 4264dc15
      Junio C Hamano 提交于
      This prepares a place to collect reflog management subcommands,
      and implements "expire" action.
      
      	$ git reflog expire --dry-run \
      		--expire=4.weeks \
      		--expire-unreachable=1.week \
      		refs/heads/master
      
      The expiration uses two timestamps: --expire and --expire-unreachable.
      Entries older than expire time (defaults to 90 days), and entries older
      than expire-unreachable time (defaults to 30 days) and records a commit
      that has been rewound and made unreachable from the current tip of the
      ref are removed from the reflog.
      
      The parameter handling is still rough, but I think the
      core logic for expiration is already sound.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4264dc15
  13. 20 12月, 2006 1 次提交
  14. 19 12月, 2006 2 次提交
    • J
      git-add --interactive · 5cde71d6
      Junio C Hamano 提交于
      A script to be driven when the user says "git add --interactive"
      is introduced.
      
      When it is run, first it runs its internal 'status' command to
      show the current status, and then goes into its internactive
      command loop.
      
      The command loop shows the list of subcommands available, and
      gives a prompt "What now> ".  In general, when the prompt ends
      with a single '>', you can pick only one of the choices given
      and type return, like this:
      
          *** Commands ***
            1: status       2: update       3: revert       4: add untracked
            5: patch        6: diff         7: quit         8: help
          What now> 1
      
      You also could say "s" or "sta" or "status" above as long as the
      choice is unique.
      
      The main command loop has 6 subcommands (plus help and quit).
      
       * 'status' shows the change between HEAD and index (i.e. what
         will be committed if you say "git commit"), and between index
         and working tree files (i.e. what you could stage further
         before "git commit" using "git-add") for each path.  A sample
         output looks like this:
      
                    staged     unstaged path
           1:       binary      nothing foo.png
           2:     +403/-35        +1/-1 git-add--interactive.perl
      
         It shows that foo.png has differences from HEAD (but that is
         binary so line count cannot be shown) and there is no
         difference between indexed copy and the working tree
         version (if the working tree version were also different,
         'binary' would have been shown in place of 'nothing').  The
         other file, git-add--interactive.perl, has 403 lines added
         and 35 lines deleted if you commit what is in the index, but
         working tree file has further modifications (one addition and
         one deletion).
      
       * 'update' shows the status information and gives prompt
         "Update>>".  When the prompt ends with double '>>', you can
         make more than one selection, concatenated with whitespace or
         comma.  Also you can say ranges.  E.g. "2-5 7,9" to choose
         2,3,4,5,7,9 from the list.  You can say '*' to choose
         everything.
      
         What you chose are then highlighted with '*', like this:
      
                    staged     unstaged path
           1:       binary      nothing foo.png
         * 2:     +403/-35        +1/-1 git-add--interactive.perl
      
         To remove selection, prefix the input with - like this:
      
              Update>> -2
      
         After making the selection, answer with an empty line to
         stage the contents of working tree files for selected paths
         in the index.
      
       * 'revert' has a very similar UI to 'update', and the staged
         information for selected paths are reverted to that of the
         HEAD version.  Reverting new paths makes them untracked.
      
       * 'add untracked' has a very similar UI to 'update' and
         'revert', and lets you add untracked paths to the index.
      
       * 'patch' lets you choose one path out of 'status' like
         selection.  After choosing the path, it presents diff between
         the index and the working tree file and asks you if you want
         to stage the change of each hunk.  You can say:
      
              y - add the change from that hunk to index
              n - do not add the change from that hunk to index
              a - add the change from that hunk and all the rest to index
              d - do not the change from that hunk nor any of the rest to index
              j - do not decide on this hunk now, and view the next
                  undecided hunk
              J - do not decide on this hunk now, and view the next hunk
              k - do not decide on this hunk now, and view the previous
                  undecided hunk
              K - do not decide on this hunk now, and view the previous hunk
      
         After deciding the fate for all hunks, if there is any hunk
         that was chosen, the index is updated with the selected hunks.
      
       * 'diff' lets you review what will be committed (i.e. between
         HEAD and index).
      
      This is still rough, but does everything except a few things I
      think are needed.
      
       * 'patch' should be able to allow splitting a hunk into
         multiple hunks.
      
       * 'patch' does not adjust the line offsets @@ -k,l +m,n @@
         in the hunk header.  This does not have major problem in
         practice, but it _should_ do the adjustment.
      
       * It does not have any explicit support for a merge in
         progress; it may not work at all.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5cde71d6
    • N
      make patch_delta() error cases a bit more verbose · 57b73150
      Nicolas Pitre 提交于
      It is especially important to distinguish between a malloc() failure
      from all the other cases.  An out of memory condition is much less
      worrisome than a compatibility/corruption problem.
      
      Also make test-delta compilable again.
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      57b73150
  15. 16 12月, 2006 2 次提交
    • L
      Export PERL_PATH · 3a793478
      Luben Tuikov 提交于
      PERL_PATH is used by perl/Makefile so export it.
      Signed-off-by: NLuben Tuikov <ltuikov@yahoo.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      3a793478
    • S
      Avoid accessing a slow working copy during diffcore operations. · 1510fea7
      Shawn O. Pearce 提交于
      The Cygwin folks have done a fine job at creating a POSIX layer
      on Windows That Just Works(tm).  However it comes with a penalty;
      accessing files in the working tree by way of stat/open/mmap can
      be slower for diffcore than inflating the data from a blob which
      is stored in a packfile.
      
      This performance problem is especially an issue in merge-recursive
      when dealing with nearly 7000 added files, as we are loading
      each file's content from the working directory to perform rename
      detection.  I have literally seen (and sadly watched) paint dry in
      less time than it takes for merge-recursive to finish such a merge.
      On the other hand this very same merge runs very fast on Solaris.
      
      If Git is compiled with NO_FAST_WORKING_DIRECTORY set then we will
      avoid looking at the working directory when the blob in question
      is available within a packfile and the caller doesn't need the data
      unpacked into a temporary file.
      
      We don't use loose objects as they have the same open/mmap/close
      costs as the working directory file access, but have the additional
      CPU overhead of needing to inflate the content before use.  So it
      is still faster to use the working tree file over the loose object.
      
      If the caller needs the file data unpacked into a temporary file
      its likely because they are going to call an external diff program,
      passing the file as a parameter.  In this case reusing the working
      tree file will be faster as we don't need to inflate the data and
      write it out to a temporary file.
      
      The NO_FAST_WORKING_DIRECTORY feature is enabled by default on
      Cygwin, as that is the platform which currently appears to benefit
      the most from this option.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      1510fea7
  16. 13 12月, 2006 1 次提交
  17. 07 12月, 2006 1 次提交
  18. 05 12月, 2006 1 次提交
  19. 03 12月, 2006 1 次提交
    • J
      xdiff: add xdl_merge() · 857b933e
      Johannes Schindelin 提交于
      This new function implements the functionality of RCS merge, but
      in-memory. It returns < 0 on error, otherwise the number of conflicts.
      
      Finding the conflicting lines can be a very expensive task. You can
      control the eagerness of this algorithm:
      
      - a level value of 0 means that all overlapping changes are treated
        as conflicts,
      - a value of 1 means that if the overlapping changes are identical,
        it is not treated as a conflict.
      - If you set level to 2, overlapping changes will be analyzed, so that
        almost identical changes will not result in huge conflicts. Rather,
        only the conflicting lines will be shown inside conflict markers.
      
      With each increasing level, the algorithm gets slower, but more accurate.
      Note that the code for level 2 depends on the simple definition of
      mmfile_t specific to git, and therefore it will be harder to port that
      to LibXDiff.
      Signed-off-by: NJohannes Schindelin <Johannes.Schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      857b933e
  20. 25 11月, 2006 1 次提交
    • J
      support fetching into a shallow repository · ed09aef0
      Johannes Schindelin 提交于
      A shallow commit is a commit which has parents, which in turn are
      "grafted away", i.e. the commit appears as if it were a root.
      
      Since these shallow commits should not be edited by the user, but
      only by core git, they are recorded in the file $GIT_DIR/shallow.
      
      A repository containing shallow commits is called shallow.
      
      The advantage of a shallow repository is that even if the upstream
      contains lots of history, your local (shallow) repository needs not
      occupy much disk space.
      
      The disadvantage is that you might miss a merge base when pulling
      some remote branch.
      Signed-off-by: NJohannes Schindelin <johannes.schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ed09aef0
  21. 22 11月, 2006 1 次提交
  22. 20 11月, 2006 1 次提交
  23. 09 11月, 2006 1 次提交
    • J
      git-pickaxe: retire pickaxe · acca687f
      Junio C Hamano 提交于
      Just make it take over blame's place.  Documentation and command
      have all stopped mentioning "git-pickaxe".  The built-in synonym
      is left in the command table, so you can still say "git pickaxe",
      but it probably is a good idea to retire it as well.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      acca687f
  24. 06 11月, 2006 1 次提交
  25. 05 11月, 2006 1 次提交
  26. 03 11月, 2006 1 次提交
    • N
      improve fetch-pack's handling of kept packs · da093d37
      Nicolas Pitre 提交于
      Since functions in fetch-clone.c were only used from fetch-pack.c,
      its content has been merged with fetch-pack.c.  This allows for better
      coupling of features with much simpler implementations.
      
      One new thing is that the (abscence of) --thin also enforce it on
      index-pack now, such that index-pack will abort if a thin pack was
      _not_ asked for.
      
      The -k or --keep, when provided twice, now causes the fetched pack
      to be left as a kept pack just like receive-pack currently does.
      Eventually this will be used to close a race against concurrent
      repacking.
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      da093d37
  27. 24 10月, 2006 2 次提交
  28. 20 10月, 2006 1 次提交
    • J
      git-pickaxe: blame rewritten. · cee7f245
      Junio C Hamano 提交于
      Currently it does what git-blame does, but only faster.
      
      More importantly, its internal structure is designed to support
      content movement (aka cut-and-paste) more easily by allowing
      more than one paths to be taken from the same commit.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cee7f245
  29. 18 10月, 2006 1 次提交
  30. 10 10月, 2006 1 次提交
  31. 05 10月, 2006 2 次提交
    • J
      tar-tree deprecation: we eat our own dog food. · 9ccb64c8
      Junio C Hamano 提交于
      It is silly to keep using git-tar-tree in dist target when the
      command gives a big deprecation warning when called.  Instead,
      use "git-archive --format=tar" which we recommend to our users.
      
      Update gitweb's snapshot feature to use git-archive for the same
      reason.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      9ccb64c8
    • A
      Gitweb - provide site headers and footers · b2d3476e
      Alan Chandler 提交于
      This allows web sites with a header and footer standard for each page
      to add them to the pages produced by gitweb.
      
      Two new variables $site_header and $site_footer are defined (default
      to null) each of which can specify a file containing the header and
      footer html.
      
      In addition, if the $stylesheet variable is undefined, a new array
      @stylesheets (which defaults to a single element of gitweb.css) can be
      used to specify more than one style sheet.  This allows the clasical
      gitweb.css styles to be retained, but a site wide style sheet used
      within the header and footer areas.
      Signed-off-by: NAlan Chandler <alan@chandlerfamily.org.uk>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b2d3476e
  32. 02 10月, 2006 1 次提交