1. 28 12月, 2009 1 次提交
  2. 22 1月, 2008 1 次提交
    • L
      Make on-disk index representation separate from in-core one · 7a51ed66
      Linus Torvalds 提交于
      This converts the index explicitly on read and write to its on-disk
      format, allowing the in-core format to contain more flags, and be
      simpler.
      
      In particular, the in-core format is now host-endian (as opposed to the
      on-disk one that is network endian in order to be able to be shared
      across machines) and as a result we can dispense with all the
      htonl/ntohl on accesses to the cache_entry fields.
      
      This will make it easier to make use of various temporary flags that do
      not exist in the on-disk format.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7a51ed66
  3. 21 1月, 2008 8 次提交
    • J
      GIT 1.5.4-rc4 · ce33288e
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ce33288e
    • J
      Merge git://repo.or.cz/git-gui · 105c21df
      Junio C Hamano 提交于
      * git://repo.or.cz/git-gui:
        git-gui: Makefile - Handle $DESTDIR on Cygwin
        git-gui: add french glossary: glossary/fr.po
        git-gui: Refresh file status description after hunk application
        git-gui: Allow 'Create New Repository' on existing directories
        git-gui: Initial french translation
        git-gui: Improve German translation.
        git-gui: Updated Swedish translation after mailing list review.
        git-gui: Fix broken revert confirmation.
        git-gui: Update German translation
        git-gui: Update glossary: add term "hunk"
      105c21df
    • J
      Merge git://git.kernel.org/pub/scm/gitk/gitk · a41acc63
      Junio C Hamano 提交于
      * git://git.kernel.org/pub/scm/gitk/gitk:
        [PATCH] gitk: make Ctrl "+" really increase the font size
      a41acc63
    • G
      http-push and http-fetch: handle URLs without trailing / · 3057ded0
      Grégoire Barbier 提交于
      The URL to a repository http-push and http-fetch takes should
      have a trailing slash.  Instead of failing the request, add it
      ourselves before attempting such a request.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      3057ded0
    • J
      http-push: clarify the reason of error from the initial PROPFIND request · 325ce395
      Junio C Hamano 提交于
      The first thing http-push does is a PROPFIND to see if the other
      end supports locking.  The failure message we give is always
      reported as "no DAV locking support at the remote repository",
      regardless of the reason why we ended up not finding the locking
      support on the other end.
      
      This moves the code to report "no DAV locking support" down the
      codepath so that the message is issued only when we successfully
      get a response to PROPFIND and the other end say it does not
      support locking.  Other failures, such as connectivity glitches
      and credential mismatches, have their own error message issued
      and we will not issue "no DAV locking" error (we do not even
      know if the remote end supports it).
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      325ce395
    • G
      http-push: fail when info/refs exists and is already locked · 9bdbabad
      Grégoire Barbier 提交于
      Failing instead of silently not updating remote refs makes the things
      clearer for the user when trying to push on a repository while another
      person do (or while a dandling locks are waiting for a 10 minutes
      timeout).
      
      When silently not updating remote refs, the user does not even know
      that git has pushed the objects but leaved the refs as they were
      before (e.g. a new bunch of commits on branch "master" is uploaded,
      however the branch by itsel still points on the previous head commit).
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9bdbabad
    • G
      http-push: fix webdav lock leak. · 9116de59
      Grégoire Barbier 提交于
      Releasing webdav lock even if push fails because of bad (or no)
      reference on command line.
      
      To reproduce the issue that this patch fixes, prepare a test repository
      availlable over http+webdav, say at http://myhost/myrepo.git/
      
      Then:
      
        $ git clone http://myhost/myrepo.git/
        $ cd myrepo
        $ git push http
        Fetching remote heads...
          refs/
          refs/heads/
          refs/tags/
        No refs in common and none specified; doing nothing.
        $ git push http
        Fetching remote heads...
          refs/
          refs/heads/
          refs/tags/
        No refs in common and none specified; doing nothing.
        $
      
      Finally, you look at the web server logs, and will find one LOCK query
      and no UNLOCK query, of course the second one will be in 423 return
      code instead of 200:
      
      1.2.3.4 - gb [19/Jan/2008:14:24:56 +0100] "LOCK /myrepo.git/info/refs HTTP/1.1" 200 465
      (...)
      1.2.3.4 - gb [19/Jan/2008:14:25:10 +0100] "LOCK /myrepo.git/info/refs HTTP/1.1" 423 363
      
      With this patch, there would have be two UNLOCKs in addition of the LOCKs
      
      From the user's point of view:
      
      - If you realize that you should have typed e.g. "git push http
        master" instead of "git push http", you will have to wait for 10
        minutes for the lock to expire by its own.
      
      - Furthermore, if somebody else is dumb enough to type "git push http"
        while you need to push "master" branch, then you'll need too to wait
        for 10 minutes too.
      Signed-off-by: NGr.ANigoire Barbier <gb@gbarbier.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9116de59
    • M
      parse_commit_buffer: tighten checks while parsing · 0a617799
      Martin Koegler 提交于
      This tightens the parsing of a commit object in a couple of ways.
      
       - The "tree " header must end with a LF (earlier we did not
         check this condition).
      
       - Make sure parsing of timestamp on the "committer " header
         does not go beyond the buffer, even when (1) the "author "
         header does not end with a LF (this means that the commit
         object is malformed and lacks the committer information) or
         (2) the "committer " header does not have ">" that is the end
         of the e-mail address, or (3) the "committer " header does
         not end with a LF.
      
      We however still keep the existing behaviour to return a parsed
      commit object even when non-structural headers such as committer
      and author are malformed, so that tools that need to look at
      commits to clean up a history with such broken commits can still
      get at the structural data (i.e. the parents chain and the tree
      object).
      Signed-off-by: NMartin Koegler <mkoegler@auto.tuwien.ac.at>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      0a617799
  4. 20 1月, 2008 2 次提交
  5. 19 1月, 2008 7 次提交
  6. 18 1月, 2008 8 次提交
    • J
      color unchanged lines as "plain" in "diff --color-words" · 472ca780
      Jeff King 提交于
      These were mistakenly being colored in "meta" color.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      472ca780
    • J
      autoconf: Add checking for unsetenv function · bfa8fccf
      Jakub Narebski 提交于
      Update configure.ac (and config.mak.in) by adding test for unsetenv
      (NO_UNSETENV).  Add comment about NO_UNSETENV to Makefile header, as
      original commit 731043fd adding compat/unsetenv.c didn't do that.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      bfa8fccf
    • T
      core-tutorial typofix · 5221ecbc
      Thomas Zander 提交于
      Signed-off-by: NThomas Zander <zander@kde.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5221ecbc
    • J
      Officially deprecate repo-config. · 5c66d0d4
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      5c66d0d4
    • S
      Fix random fast-import errors when compiled with NO_MMAP · c9ced051
      Shawn O. Pearce 提交于
      fast-import was relying on the fact that on most systems mmap() and
      write() are synchronized by the filesystem's buffer cache.  We were
      relying on the ability to mmap() 20 bytes beyond the current end
      of the file, then later fill in those bytes with a future write()
      call, then read them through the previously obtained mmap() address.
      
      This isn't always true with some implementations of NFS, but it is
      especially not true with our NO_MMAP=YesPlease build time option used
      on some platforms.  If fast-import was built with NO_MMAP=YesPlease
      we used the malloc()+pread() emulation and the subsequent write()
      call does not update the trailing 20 bytes of a previously obtained
      "mmap()" (aka malloc'd) address.
      
      Under NO_MMAP that behavior causes unpack_entry() in sha1_file.c to
      be unable to read an object header (or data) that has been unlucky
      enough to be written to the packfile at a location such that it
      is in the trailing 20 bytes of a window previously opened on that
      same packfile.
      
      This bug has gone unnoticed for a very long time as it is highly data
      dependent.  Not only does the object have to be placed at the right
      position, but it also needs to be positioned behind some other object
      that has been accessed due to a branch cache invalidation.  In other
      words the stars had to align just right, and if you did run into
      this bug you probably should also have purchased a lottery ticket.
      
      Fortunately the workaround is a lot easier than the bug explanation.
      
      Before we allow unpack_entry() to read data from a pack window
      that has also (possibly) been modified through write() we force
      all existing windows on that packfile to be closed.  By closing
      the windows we ensure that any new access via the emulated mmap()
      will reread the packfile, updating to the current file content.
      
      This comes at a slight performance degredation as we cannot reuse
      previously cached windows when we update the packfile.  But it
      is a fairly minor difference as the window closes happen at only
      two points:
      
       - When the packfile is finalized and its .idx is generated:
      
         At this stage we are getting ready to update the refs and any
         data access into the packfile is going to be random, and is
         going after only the branch tips (to ensure they are valid).
         Our existing windows (if any) are not likely to be positioned
         at useful locations to access those final tip commits so we
         probably were closing them before anyway.
      
       - When the branch cache missed and we need to reload:
      
         At this point fast-import is getting change commands for the next
         commit and it needs to go re-read a tree object it previously
         had written out to the packfile.  What windows we had (if any)
         are not likely to cover the tree in question so we probably were
         closing them before anyway.
      
      We do try to avoid unnecessarily closing windows in the second case
      by checking to see if the packfile size has increased since the
      last time we called unpack_entry() on that packfile.  If the size
      has not changed then we have not written additional data, and any
      existing window is still vaild.  This nicely handles the cases where
      fast-import is going through a branch cache reload and needs to read
      many trees at once.  During such an event we are not likely to be
      updating the packfile so we do not cycle the windows between reads.
      
      With this change in place t9301-fast-export.sh (which was broken
      by c3b0dec5) finally works again.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      c9ced051
    • B
      fast-import.c: don't try to commit marks file if write failed · fb54abd6
      Brandon Casey 提交于
      We also move the assignment of -1 to the lock file descriptor
      up, so that rollback_lock_file() can be called safely after a
      possible attempt to fclose(). This matches the contents of
      the 'if' statement just above testing success of fdopen().
      Signed-off-by: NBrandon Casey <casey@nrlssc.navy.mil>
      Acked-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fb54abd6
    • M
      git-gui: Makefile - Handle $DESTDIR on Cygwin · a0285571
      Mark Levedahl 提交于
      gg_libdir is converted to an absolute Windows path on Cygwin,
      but a later step attempts to prefix $DESTDIR to install to a
      staging directory. Explicitly separate the uses of gg_libdir for
      these two purposes so installation to $DESTDIR will work.
      Signed-off-by: NMark Levedahl <mdl123@verizon.net>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      a0285571
    • C
      a1f8f504
  7. 17 1月, 2008 10 次提交
  8. 16 1月, 2008 3 次提交
    • S
      git-gui: Refresh file status description after hunk application · a41e45ea
      Shawn O. Pearce 提交于
      If we apply a hunk in either direction this may change the file's
      status.  For example if a file is completely unstaged, and has at
      least two hunks in it and the user stages one hunk the file will
      change from "Modified, not staged" to "Portions staged for commit".
      
      Resetting the file path causes our trace on this variable to fire;
      that trace is used to update the file header in the diff viewer to
      the file's current status.
      
      Noticed by Johannes Sixt.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      a41e45ea
    • S
      git-gui: Allow 'Create New Repository' on existing directories · d36a8f73
      Shawn O. Pearce 提交于
      Often users setup a few source files and get a project rolling
      before they create a Git repository for it.  In such cases the
      core Git tools allow users to initialize a new repository by
      simply running `git init` at the desired root level directory.
      
      We need to allow the same situation in git-gui; if the user is
      trying to make a new repository we should let them do that to any
      location they chose.  If the directory already exists and already
      has files contained within it we still should allow the user to
      create a repository there.  However we still need to disallow
      creating a repository on top of an existing repository.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      d36a8f73
    • C
      git-gui: Initial french translation · daaa958f
      Christian Couder 提交于
      Here are some of the choices made to translate Git Gui to french:
      
      - commit         -> "commit" (noun) or "commiter" (verb)
      - stage (index)  -> "pré-commit" (noun) or "pré-commiter" (verb)
      - (re)scan       -> "(re)synchroniser"
      - reset          -> "réinitialiser"
      - checkout       -> "emprunt" (noun) or "emprunter" (verb)
      - revision expression -> "expression de révison"
      
      I am not completely happy with these, but it's a start...
      
      [sp: Inserted a missing LF in message on line 466]
      Signed-off-by: NChristian Couder <chriscool@tuxfamily.org>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      daaa958f