• E
    git-svn: replace .rev_db with a more space-efficient .rev_map format · 060610c5
    Eric Wong 提交于
    Migrations are done automatically on an as-needed basis when new
    revisions are to be fetched.  Stale remote branches do not get
    migrated, yet.
    
    However, unless you set noMetadata or useSvkProps it's safe to
    just do:
    
      find $GIT_DIR/svn -name '.rev_db*' -print0 | xargs rm -f
    
    to purge all the old .rev_db files.
    
    The new format is a one-way migration and is NOT compatible with
    old versions of git-svn.
    
    This is the replacement for the rev_db format, which was too big
    and inefficient for large repositories with a lot of sparse history
    (mainly tags).
    
    The format is this:
    
      - 24 bytes for every record,
        * 4 bytes for the integer representing an SVN revision number
        * 20 bytes representing the sha1 of a git commit
    
      - No empty padding records like the old format
    
      - new records are written append-only since SVN revision numbers
        increase monotonically
    
      - lookups on SVN revision number are done via a binary search
    
      - Piping the file to xxd(1) -c24 is a good way of dumping it for
        viewing or editing, should the need ever arise.
    
    As with .rev_db, these files are disposable unless noMetadata or
    useSvmProps is set.
    Signed-off-by: NEric Wong <normalperson@yhbt.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    060610c5
git-svn.perl 132.4 KB