annotate hgext/largefiles/__init__.py @ 15172:fb1dcd2aae2a

largefiles: fix multistatement line
author Matt Mackall <mpm@selenic.com>
date Thu, 29 Sep 2011 17:15:54 -0500
parents cfccd3bee7b3
children 697289c5d415
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15168
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
1 # Copyright 2009-2010 Gregory P. Ward
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
2 # Copyright 2009-2010 Intelerad Medical Systems Incorporated
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
3 # Copyright 2010-2011 Fog Creek Software
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
4 # Copyright 2010-2011 Unity Technologies
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
5 #
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
6 # This software may be used and distributed according to the terms of the
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
7 # GNU General Public License version 2 or any later version.
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
8
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
9 '''track large binary files
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
10
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
11 Large binary files tend to be not very compressible, not very "diffable", and
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
12 not at all mergeable. Such files are not handled well by Mercurial\'s storage
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
13 format (revlog), which is based on compressed binary deltas. largefiles solves
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
14 this problem by adding a centralized client-server layer on top of Mercurial:
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
15 largefiles live in a *central store* out on the network somewhere, and you only
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
16 fetch the ones that you need when you need them.
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
17
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
18 largefiles works by maintaining a *standin* in .hglf/ for each largefile. The
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
19 standins are small (41 bytes: an SHA-1 hash plus newline) and are tracked by
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
20 Mercurial. Largefile revisions are identified by the SHA-1 hash of their
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
21 contents, which is written to the standin. largefiles uses that revision ID to
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
22 get/put largefile revisions from/to the central store.
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
23
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
24 A complete tutorial for using lfiles is included in ``usage.txt`` in the lfiles
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
25 source distribution. See
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
26 https://developers.kilnhg.com/Repo/Kiln/largefiles/largefiles/File/usage.txt
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
27 '''
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
28
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
29 from mercurial import commands
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
30
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
31 import lfcommands
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
32 import reposetup
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
33 import uisetup
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
34
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
35 reposetup = reposetup.reposetup
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
36 uisetup = uisetup.uisetup
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
37
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
38 commands.norepo += " lfconvert"
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
39
cfccd3bee7b3 hgext: add largefiles extension
various
parents:
diff changeset
40 cmdtable = lfcommands.cmdtable