Show More
@@ -1,51 +1,51 | |||||
1 | Largefiles allows for tracking large, incompressible binary files in Mercurial |
|
1 | Largefiles allows for tracking large, incompressible binary files in Mercurial | |
2 | without requiring excessive bandwidth for clones and pulls. Files added as |
|
2 | without requiring excessive bandwidth for clones and pulls. Files added as | |
3 | largefiles are not tracked directly by Mercurial; rather, their revisions are |
|
3 | largefiles are not tracked directly by Mercurial; rather, their revisions are | |
4 | identified by a checksum, and Mercurial tracks these checksums. This way, when |
|
4 | identified by a checksum, and Mercurial tracks these checksums. This way, when | |
5 | you clone a repository or pull in changesets, the large files in older |
|
5 | you clone a repository or pull in changesets, the large files in older | |
6 | revisions of the repository are not needed, and only the ones needed to update |
|
6 | revisions of the repository are not needed, and only the ones needed to update | |
7 | to the current version are downloaded. This saves both disk space and |
|
7 | to the current version are downloaded. This saves both disk space and | |
8 | bandwidth. |
|
8 | bandwidth. | |
9 |
|
9 | |||
10 | If you are starting a new repository or adding new large binary files, using |
|
10 | If you are starting a new repository or adding new large binary files, using | |
11 | largefiles for them is as easy as adding '--large' to your hg add command. For |
|
11 | largefiles for them is as easy as adding '--large' to your hg add command. For | |
12 | example: |
|
12 | example: | |
13 |
|
13 | |||
14 | $ dd if=/dev/urandom of=thisfileislarge count=2000 |
|
14 | $ dd if=/dev/urandom of=thisfileislarge count=2000 | |
15 | $ hg add --large thisfileislarge |
|
15 | $ hg add --large thisfileislarge | |
16 | $ hg commit -m 'add thisfileislarge, which is large, as a largefile' |
|
16 | $ hg commit -m 'add thisfileislarge, which is large, as a largefile' | |
17 |
|
17 | |||
18 | When you push a changeset that affects largefiles to a remote repository, its |
|
18 | When you push a changeset that affects largefiles to a remote repository, its | |
19 | largefile revisions will be uploaded along with it. Note that the remote |
|
19 | largefile revisions will be uploaded along with it. Note that the remote | |
20 | Mercurial must also have the largefiles extension enabled for this to work. |
|
20 | Mercurial must also have the largefiles extension enabled for this to work. | |
21 |
|
21 | |||
22 | When you pull a changeset that affects largefiles from a remote repository, |
|
22 | When you pull a changeset that affects largefiles from a remote repository, | |
23 | nothing different from Mercurial's normal behavior happens. However, when you |
|
23 | nothing different from Mercurial's normal behavior happens. However, when you | |
24 | update to such a revision, any largefiles needed by that revision are |
|
24 | update to such a revision, any largefiles needed by that revision are | |
25 | downloaded and cached if they have never been downloaded before. This means |
|
25 | downloaded and cached if they have never been downloaded before. This means | |
26 | that network access is required to update to revision you have not yet updated |
|
26 | that network access is required to update to revision you have not yet updated | |
27 | to. |
|
27 | to. | |
28 |
|
28 | |||
29 | If you already have large files tracked by Mercurial without the largefiles |
|
29 | If you already have large files tracked by Mercurial without the largefiles | |
30 | extension, you will need to convert your repository in order to benefit from |
|
30 | extension, you will need to convert your repository in order to benefit from | |
31 | largefiles. This is done with the 'hg lfconvert' command: |
|
31 | largefiles. This is done with the 'hg lfconvert' command: | |
32 |
|
32 | |||
33 | $ hg lfconvert --size 10 oldrepo newrepo |
|
33 | $ hg lfconvert --size 10 oldrepo newrepo | |
34 |
|
34 | |||
35 | By default, in repositories that already have largefiles in them, any new file |
|
35 | By default, in repositories that already have largefiles in them, any new file | |
36 | over 10MB will automatically be added as largefiles. To change this |
|
36 | over 10MB will automatically be added as largefiles. To change this | |
37 | threshhold, set [largefiles].size in your Mercurial config file to the minimum |
|
37 | threshhold, set [largefiles].size in your Mercurial config file to the minimum | |
38 | size in megabytes to track as a largefile, or use the --lfsize option to the |
|
38 | size in megabytes to track as a largefile, or use the --lfsize option to the | |
39 | add command (also in megabytes): |
|
39 | add command (also in megabytes): | |
40 |
|
40 | |||
41 | [largefiles] |
|
41 | [largefiles] | |
42 | size = 2 |
|
42 | size = 2 | |
43 |
|
43 | |||
44 | $ hg add --lfsize 2 |
|
44 | $ hg add --lfsize 2 | |
45 |
|
45 | |||
46 | The [largefiles].patterns config option allows you to specify specific |
|
46 | The [largefiles].patterns config option allows you to specify specific | |
47 | space-separated filename patterns (in shell glob syntax) that should always be |
|
47 | space-separated filename patterns (in shell glob syntax) that should always be | |
48 | tracked as largefiles: |
|
48 | tracked as largefiles: | |
49 |
|
49 | |||
50 | [largefiles] |
|
50 | [largefiles] | |
51 | pattens = *.jpg *.{png,bmp} library.zip content/audio/* |
|
51 | patterns = *.jpg *.{png,bmp} library.zip content/audio/* |
General Comments 0
You need to be logged in to leave comments.
Login now