1. 13 4月, 2006 1 次提交
    • J
      Makefile: $(MAKE) check-docs · 8c989ec5
      Junio C Hamano 提交于
      This target lists undocumented commands, and/or whose document
      is not referenced from the main git documentation.
      
      For now, there are some exceptions I added primarily because I
      lack the energy to document them myself:
      
       - merge backends (we should really document them)
       - ssh-push/ssh-pull (does anybody still use them?)
       - annotate and blame (maybe after one of them eats the other ;-)
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      8c989ec5
  2. 12 4月, 2006 2 次提交
  3. 11 4月, 2006 3 次提交
  4. 09 4月, 2006 1 次提交
    • J
      log-tree: separate major part of diff-tree. · 5f1c3f07
      Junio C Hamano 提交于
      This separates out the part that deals with one-commit diff-tree
      (and --stdin form) into a separate log-tree module.
      
      There are two goals with this.  The more important one is to be
      able to make this part available to "git log --diff", so that we
      can have a native "git whatchanged" command.  Another is to
      simplify the commit log generation part simpler.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      5f1c3f07
  5. 06 4月, 2006 1 次提交
  6. 05 4月, 2006 4 次提交
  7. 01 4月, 2006 1 次提交
  8. 30 3月, 2006 1 次提交
    • J
      tree/diff header cleanup. · 1b0c7174
      Junio C Hamano 提交于
      Introduce tree-walk.[ch] and move "struct tree_desc" and
      associated functions from various places.
      
      Rename DIFF_FILE_CANON_MODE(mode) macro to canon_mode(mode) and
      move it to cache.h.  This macro returns the canonicalized
      st_mode value in the host byte order for files, symlinks and
      directories -- to be compared with a tree_desc entry.
      create_ce_mode(mode) in cache.h is similar but is intended to be
      used for index entries (so it does not work for directories) and
      returns the value in the network byte order.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      1b0c7174
  9. 28 3月, 2006 1 次提交
  10. 27 3月, 2006 2 次提交
  11. 26 3月, 2006 1 次提交
    • 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
  12. 19 3月, 2006 1 次提交
  13. 11 3月, 2006 1 次提交
    • M
      Add git-imap-send, derived from isync 1.0.1. · f2561fda
      Mike McCormack 提交于
      git-imap-send drops a patch series generated by git-format-patch into an
      IMAP folder. This allows patch submitters to send patches through their
      own mail program.
      
      git-imap-send uses the following values from the GIT repository
      configuration:
      
      The target IMAP folder:
      
      [imap]
               Folder = "INBOX.Drafts"
      
      A command to open an ssh tunnel to the imap mail server.
      
      [imap]
               Tunnel = "ssh -q user@imap.server.com /usr/bin/imapd ./Maildir
      2> /dev/null"
      
      [imap]
               Host = imap.server.com
               User = bob
               Password = pwd
               Port = 143
      f2561fda
  14. 10 3月, 2006 1 次提交
  15. 09 3月, 2006 1 次提交
  16. 08 3月, 2006 1 次提交
    • N
      Update http-push functionality · aa1dbc98
      Nick Hengeveld 提交于
      This brings http-push functionality more in line with the ssh/git version,
      by borrowing bits from send-pack and rev-list to process refspecs and
      revision history in more standard ways.  Also, the status of remote objects
      is determined using PROPFIND requests for the object directory rather than
      HEAD requests for each object - while it may be less efficient for small
      numbers of objects, this approach is able to get the status of all remote
      loose objects in a maximum of 256 requests.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      aa1dbc98
  17. 06 3月, 2006 2 次提交
  18. 05 3月, 2006 1 次提交
  19. 01 3月, 2006 5 次提交
  20. 27 2月, 2006 1 次提交
    • L
      First cut at libifying revlist generation · ae563542
      Linus Torvalds 提交于
      This really just splits things up partially, and creates the
      interface to set things up by parsing the command line.
      
      No real code changes so far, although the parsing of filenames is a bit
      stricter. In particular, if there is a "--", then we do not accept any
      filenames before it, and if there isn't any "--", then we check that _all_
      paths listed are valid, not just the first one.
      
      The new argument parsing automatically also gives us "--default" and
      "--not" handling as in git-rev-parse.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ae563542
  21. 25 2月, 2006 1 次提交
  22. 23 2月, 2006 1 次提交
    • C
      Add new git-rm command with documentation · d4a1cab5
      Carl Worth 提交于
      This adds a git-rm command which provides convenience similar to
      git-add, (and a bit more since it takes care of the rm as well if
      given -f).
      
      Like git-add, git-rm expands the given path names through
      git-ls-files. This means it only acts on files listed in the
      index. And it does act recursively on directories by default, (no -r
      needed as in the case of rm itself). When it recurses, it does not
      remove empty directories that are left behind.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d4a1cab5
  23. 22 2月, 2006 2 次提交
    • M
      Introducing git-cvsserver -- a CVS emulator for git. · 3fda8c4c
      Martin Langhoff 提交于
      git-cvsserver is highly functional. However, not all methods are implemented,
      and for those methods that are implemented, not all switches are implemented.
      All the common read operations are implemented, and add/remove/commit are
      supported.
      
      Testing has been done using both the CLI CVS client, and the Eclipse CVS
      plugin. Most functionality works fine with both of these clients.
      
      Currently git-cvsserver only works over SSH connections, see the
      Documentation for more details on how to configure your client. It
      does not support pserver for anonymous access but it should not be
      hard to implement. Anonymous access will need tighter input validation.
      
      In our very informal tests, it seems to be significantly faster than a real
      CVS server.
      
      This utility depends on a version of git-cvsannotate that supports -S and on
      DBD::SQLite.
      
      Licensed under GPLv2. Copyright The Open University UK.
      
      Authors: Martyn Smith <martyn@catalyst.net.nz>
               Martin Langhoff <martin@catalyst.net.nz>
      Signed-off-by: NMartin Langhoff <martin@catalyst.net.nz>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      3fda8c4c
    • J
      Fix "gmake -j" · b9929338
      Johannes Schindelin 提交于
      In my attempt to port git to IRIX, I broke it. Sorry.
      Signed-off-by: NJohannes E. Schindelin <Johannes.Schindelin@gmx.de>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b9929338
  24. 21 2月, 2006 4 次提交
    • P
      Makefile tweaks: Solaris 9+ dont need iconv / move up uname variables · e15f5451
      Paul Jakma 提交于
      - Solaris 9 and up do not need -liconv, so NEEDS_LIBICONV should be set
         only for S8.
      - Move the declaration of the uname variables to early in the Makefile
         so they can be referenced by prefix and gitexecdir variables.
      - gitexecdir defaults to being same as bindir, it might as well reference
         that variable.
      
      [jc: corrupt patch, sneakily tried to remove inclusion of GIT-VERSION-FILE
       I do not know why I am applying this...]
      Signed-off-by: NPaul Jakma <paul@quagga.net>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e15f5451
    • F
      Add git-blame, a tool for assigning blame. · cbfb73d7
      Fredrik Kuivinen 提交于
      I have also been working on a blame program. The algorithm is pretty
      much the one described by Junio in his blame.perl. My variant doesn't
      handle renames, but it shouldn't be too hard to add that. The output
      is minimal, just the line number followed by the commit SHA1.
      
      An interesting observation is that the output from my git-blame and
      your git-annotate doesn't match on all files in the git
      repository. One example where several lines differ is read-cache.c. I
      haven't investigated it further to find out which one is correct.
      
      The code should be considered as a work in progress. It certainly has
      a couple of rough edges. The output looks fairly sane on the few files
      I have tested it on, but it wouldn't be too surprising if it gets some
      cases wrong.
      
      [jc: adding it to pu for wider comments. I did minimum
      whitespace fixups but it still needs an indent run and
      -Wdeclaration-after-statement fixups.]
      Signed-off-by: NFredrik Kuivinen <freku045@student.liu.se>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cbfb73d7
    • J
      git-mktree: reverse of git-ls-tree. · 83f50539
      Junio C Hamano 提交于
      This reads data in the format a (non recursive) ls-tree outputs
      and writes a tree object to the object database.  The created
      tree object name is output to the standard output.
      
      For convenience, the input data does not need to be sorted; the
      command sorts the input lines internally.
      
      By request from Tommi Virtanen.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      83f50539
    • R
      Add git-annotate, a tool for assigning blame. · c65e8987
      Ryan Anderson 提交于
      Signed-off-by: NRyan Anderson <ryan@michonline.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      c65e8987