summaryrefslogtreecommitdiff
path: root/doc/git-annex-adjust.mdwn
blob: 1b6a93f99737d9ab9d6bb4d4a6776ef7931afd40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# NAME

git-annex adjust - enter an adjusted branch

# SYNOPSIS

git annex adjust `--unlock|--fix|--hide-missing [--unlock|--fix]`

# DESCRIPTION

Enters an adjusted form of the current branch. The annexed files will
be treated differently. For example with --unlock all annexed files will
be unlocked.

The adjusted branch will have a name like "adjusted/master(unlocked)".
Since it's a regular git branch, you can use `git checkout` to switch
back to the original branch at any time.

While in the adjusted branch, you can use git-annex and git commands as
usual. Any commits that you make will initially only be made to the
adjusted branch. 

To propagate commits from the adjusted branch back to the original branch,
and to other repositories, as well as to merge in changes from other
repositories, run `git annex sync`.

When in an adjusted branch, using `git merge otherbranch` is often not
ideal, because merging a non-adjusted branch may lead to unncessary
merge conflicts, or add files in non-adjusted form. To avoid those
problems, use `git annex merge otherbranch`.

Re-running this command with the same options
while inside the adjusted branch will update the adjusted branch
as necessary (eg for `--hide-missing`), and will also propagate commits
back to the original branch.

# OPTIONS

* `--unlock`

  Unlock all annexed files in the adjusted branch. This allows
  annexed files to be modified.

  Normally, unlocking a file requires a copy to be made of its content,
  so that its original content is preserved, while the copy can be modified.
  To use less space, annex.thin can be set to true before running this
  command; this makes a hard link to the content be made instead of a copy.
  (When supported by the file system.) While this can save considerable
  disk space, any modification made to a file will cause the old version of the
  file to be lost from the local repository. So, enable annex.thin with care.

* `--fix`

  Fix the symlinks to annexed files to point to the local git annex
  object directory. This can be useful if a repository is checked out in an
  unusual way that prevents the symlinks committed to git from pointing at
  the annex objects.

* `--hide-missing`

  Only include annexed files in the adjusted branch when their content
  is present.

  The adjusted branch is not immediately changed when content availability
  changes, so if you `git annex drop` files, they will become broken
  links in the usual way. And when files that were missing are copied into the
  repository from elsewhere, they won't immediatly become visible in the
  branch.
  
  To update the adjusted branch to reflect changes to content availability, 
  run `git annex adjust --hide-missing` again.

  Despite missing files being hidden, `git annex sync --content` will
  still operate on them, and can be used to download missing
  files from remotes.

  This option can be combined with --unlock or --fix.

# SEE ALSO

[[git-annex]](1)

[[git-annex-unlock]](1)

[[git-annex-upgrade]](1)

[[git-annex-sync]](1)

# AUTHOR

Joey Hess <id@joeyh.name>

Warning: Automatically converted into a man page by mdwn2man. Edit with care.