1. 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
  2. 13 12月, 2006 1 次提交
  3. 07 12月, 2006 1 次提交
  4. 05 12月, 2006 1 次提交
  5. 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
  6. 22 11月, 2006 1 次提交
  7. 20 11月, 2006 1 次提交
  8. 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
  9. 06 11月, 2006 1 次提交
  10. 05 11月, 2006 1 次提交
  11. 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
  12. 24 10月, 2006 2 次提交
  13. 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
  14. 18 10月, 2006 1 次提交
  15. 10 10月, 2006 1 次提交
  16. 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
  17. 02 10月, 2006 1 次提交
  18. 30 9月, 2006 1 次提交
  19. 28 9月, 2006 1 次提交
    • J
      Cleaned up git-daemon virtual hosting support. · dd467629
      Jon Loeliger 提交于
      Standardized on lowercase hostnames from client.
      
      Added interpolation values for the IP address, port and
      canonical hostname of the server as it is contacted and
      named by the client and passed in via the extended args.
      
      Added --listen=host_or_ipaddr option suport.  Renamed port
      variable as "listen_port" correspondingly as well.
      
      Documented mutual exclusivity of --inetd option with
          --user, --group, --listen and --port options.
      
      Added compat/inet_pton.c from Paul Vixie as needed.
      
      Small memory leaks need to be cleaned up still.
      Signed-off-by: NJon Loeliger <jdl@jdl.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      dd467629
  20. 25 9月, 2006 3 次提交
  21. 24 9月, 2006 2 次提交
  22. 21 9月, 2006 2 次提交
    • J
      Add virtualization support to git-daemon · 49ba83fb
      Jon Loeliger 提交于
      Signed-off-by: Jon Loeliger
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      49ba83fb
    • J
      builtin-grep: make pieces of it available as library. · 83b5d2f5
      Junio C Hamano 提交于
      This makes three functions and associated option structures from
      builtin-grep available from other parts of the system.
      
       * options to drive built-in grep engine is stored in struct
         grep_opt;
      
       * pattern strings and extended grep expressions are added to
         struct grep_opt with append_grep_pattern();
      
       * when finished calling append_grep_pattern(), call
         compile_grep_patterns() to prepare for execution;
      
       * call grep_buffer() to find matches in the in-core buffer.
      
      This also adds an internal option "status_only" to grep_opt,
      which suppresses any output from grep_buffer().  Callers of the
      function as library can use it to check if there is a match
      without producing any output.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      83b5d2f5
  23. 18 9月, 2006 1 次提交
    • L
      Start handling references internally as a sorted in-memory list · e1e22e37
      Linus Torvalds 提交于
      This also adds some very rudimentary support for the notion of packed
      refs.  HOWEVER! At this point it isn't used to actually look up a ref
      yet, only for listing them (ie "for_each_ref()" and friends see the
      packed refs, but none of the other single-ref lookup routines).
      
      Note how we keep two separate lists: one for the loose refs, and one for
      the packed refs we read. That's so that we can easily keep the two apart,
      and read only one set or the other (and still always make sure that the
      loose refs take precedence).
      
      [ From this, it's not actually obvious why we'd keep the two separate
        lists, but it's important to have the packed refs on their own list
        later on, when I add support for looking up a single loose one.
      
        For that case, we will want to read _just_ the packed refs in case the
        single-ref lookup fails, yet we may end up needing the other list at
        some point in the future, so keeping them separated is important ]
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e1e22e37
  24. 17 9月, 2006 2 次提交
  25. 16 9月, 2006 1 次提交
    • L
      Add "git show-ref" builtin command · 358ddb62
      Linus Torvalds 提交于
      It's kind of like "git peek-remote", but works only locally (and thus
      avoids the whole overhead of git_connect()) and has some extra
      verification features.
      
      For example, it allows you to filter the results, and to choose whether
      you want the tag dereferencing or not. You can also use it to just test
      whether a particular ref exists.
      
      For example:
      
      	git show-ref master
      
      will show all references called "master", whether tags or heads or
      anything else, and regardless of how deep in the reference naming
      hierarchy they are (so it would show "refs/heads/master" but also
      "refs/remote/other-repo/master").
      
      When using the "--verify" flag, the command requires an exact ref path:
      
      	git show-ref --verify refs/heads/master
      
      will only match the exact branch called "master".
      
      If nothing matches, show-ref will return an error code of 1, and in the
      case of verification, it will show an error message.
      
      For scripting, you can ask it to be quiet with the "--quiet" flag, which
      allows you to do things like
      
      	git-show-ref --quiet --verify -- "refs/heads/$headname" ||
      		echo "$headname is not a valid branch"
      
      to check whether a particular branch exists or not (notice how we don't
      actually want to show any results, and we want to use the full refname for
      it in order to not trigger the problem with ambiguous partial matches).
      
      To show only tags, or only proper branch heads, use "--tags" and/or
      "--heads" respectively (using both means that it shows tags _and_ heads,
      but not other random references under the refs/ subdirectory).
      
      To do automatic tag object dereferencing, use the "-d" or "--dereference"
      flag, so you can do
      
      	git show-ref --tags --dereference
      
      to get a listing of all tags together with what they dereference.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      358ddb62
  26. 11 9月, 2006 1 次提交
  27. 10 9月, 2006 2 次提交
    • F
      Add git-upload-archive · 39345a21
      Franck Bui-Huu 提交于
      This command implements the git archive protocol on the server
      side. This command is not intended to be used by the end user.
      Underlying git-archive command line options are sent over the
      protocol from "git-archive --remote=...", just like upload-tar
      currently does with "git-tar-tree=...".
      
      As for "git-archive" command implementation, this new command
      does not execute any existing "git-{tar,zip}-tree" but rely
      on the archive API defined by "git-archive" patch. Hence we
      get 2 good points:
      
       - "git-archive" and "git-upload-archive" share all option
         parsing code.
      
       - All kind of git-upload-{tar,zip} can be deprecated.
      Signed-off-by: NFranck Bui-Huu <vagabon.xyz@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      39345a21
    • F
      Add git-archive · 4df096a5
      Franck Bui-Huu 提交于
      git-archive is a command to make TAR and ZIP archives of a git tree.
      It helps prevent a proliferation of git-{format}-tree commands.
      
      Instead of directly calling git-{tar,zip}-tree command, it defines
      a very simple API, that archiver should implement and register in
      "git-archive.c". This API is made up by 2 functions whose prototype
      is defined in "archive.h" file.
      
       - The first one is used to parse 'extra' parameters which have
         signification only for the specific archiver. That would allow
         different archive backends to have different kind of options.
      
       - The second one is used to ask to an archive backend to build
         the archive given some already resolved parameters.
      
      The main reason for making this API is to avoid using
      git-{tar,zip}-tree commands, hence making them useless. Maybe it's
      time for them to die ?
      
      It also implements remote operations by defining a very simple
      protocol: it first sends the name of the specific uploader followed
      the repository name (git-upload-tar git://example.org/repo.git).
      Then it sends options. It's done by sending a sequence of one
      argument per packet, with prefix "argument ", followed by a flush.
      
      The remote protocol is implemented in "git-archive.c" for client
      side and is triggered by "--remote=<repo>" option. For example,
      to fetch a TAR archive in a remote repo, you can issue:
      
      $ git archive --format=tar --remote=git://xxx/yyy/zzz.git HEAD
      
      We choose to not make a new command "git-fetch-archive" for example,
      avoind one more GIT command which should be nice for users (less
      commands to remember, keeps existing --remote option).
      Signed-off-by: NFranck Bui-Huu <vagabon.xyz@gmail.com>
      Acked-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4df096a5
  28. 09 9月, 2006 2 次提交
  29. 07 9月, 2006 1 次提交
  30. 05 9月, 2006 1 次提交