1git-annex-filter-branch(1)  General Commands Manual git-annex-filter-branch(1)
2
3
4

NAME

6       git-annex-filter-branch - filter information from the git-annex branch
7

SYNOPSIS

9       git annex filter-branch [...]
10

DESCRIPTION

12       This  copies  selected information from the git-annex branch into a git
13       commit object, and outputs its hash. The git commit can be  transported
14       to another git repository, and given a branch name such as "foo/git-an‐
15       nex", and git-annex there will automatically merge that into  its  git-
16       annex branch. This allows publishing some information from your git-an‐
17       nex branch, without publishing the whole thing.
18
19       Other ways to avoid publishing information from a git-annex branch,  or
20       remove  information from it include git-annex-forget(1), the annex.pri‐
21       vate  git  config,  and  the  --private  option   to   [[git-annex-ini‐
22       tremote](1).  Those are much easier to use, but this provides full con‐
23       trol for those who need it.
24
25       With no options, no information at all will be included from  the  git-
26       annex  branch.  Use options to specify what to include. All options can
27       be specified multiple times.
28
29       When the repository contains information  about  a  private  repository
30       (due  to annex.private being set, or git-annex initremote --private be‐
31       ing used), that private information will be included  when  allowed  by
32       the options, even though it is not recorded on the git-annex branch.
33
34       When  a  repository was created with git annex initremote --sameas=foo,
35       its information will be included when the information for foo  is,  and
36       excluded when foo is excluded.
37
38       When  a  special  remote  is  configured with importtree=yes or export‐
39       tree=yes, normally the git tree corresponding to the repository is  in‐
40       cluded  in  the  git-annex branch, to make sure it does not get garbage
41       collected by git gc. Those trees are *not* included when filtering  the
42       git-annex branch. Usually this will not cause any problems, but if such
43       a tree does get garbage collected, it will prevent accessing  files  on
44       the  special remote, until the next time a tree is imported or exported
45       to it.
46

OPTIONS

48       path
49
50              Include information about all keys of annexed files in the path.
51
52       file matching options
53              The git-annex-matching-options(1) can be used to  specify  which
54              files in a path to include.
55
56       --branch=ref
57              Include  information about keys referred of annexed files in the
58              branch or treeish.
59
60       --key=key
61              Include information about a specific key.
62
63       --all  Include information about all keys.
64
65       --include-key-information-for=repo
66              When including information about a key, include information spe‐
67              cific to this repository. The repository can be specified with a
68              uuid or the name of a remote. This option can be used repeatedly
69              to include several repositories.
70
71       --include-all-key-information
72              Include  key  information  for  all repositories, except any ex‐
73              cluded with the --exclude-key-information-for option.
74
75       --exclude-key-information-for=repo
76              When including information about a key, exclude information spe‐
77              cific to this repository. The repository can be specified with a
78              uuid or the name of a remote. This option can be used repeatedly
79              to exclude several repositories.
80
81       --include-repo-config-for=repo
82              Include  configuration specific to this repository.  The reposi‐
83              tory can be specified with a uuid or the name of a remote.
84
85              This includes the configuration of special  remotes,  which  may
86              include  embedded credentials, or encryption parameters. It also
87              includes trust settings, preferred content, etc. It does not in‐
88              clude  information  about any git-annex keys. This option can be
89              used repeatedly to include several repositories.
90
91       --include-all-repo-config
92              Include the configuration of all repositories,  except  for  any
93              excluded with the --exclude-repo-config-for option.
94
95       --exclude-repo-config-for=repo
96              Exclude  configuration specific to this repository.  The reposi‐
97              tory can be specified with a uuid or the name of a remote.  This
98              option can be used repeatedly to exclude several repositories.
99
100       --include-global-config
101              Include global configuration, that is not specific to any repos‐
102              itory.
103
104              This includes configs stored by git-annex-numcopies(1),  git-an‐
105              nex-config(1), etc.
106

EXAMPLES

108       You  have  a  big  git-annex repository and are splitting the directory
109       "foo" out, to make a smaller repository. You want  the  smaller  repo's
110       git-annex branch to contain all the information about remotes and other
111       configuration, but only information about keys in that directory.
112
113        git-annex filter-branch foo --include-all-key-information        --in‐
114       clude-all-repo-config --include-global-config
115
116       That only includes information about the keys that are currently in the
117       directory "foo", not keys used by old versions of files.  To  also  in‐
118       clude information about the version of the subdir in tag "1.0", add the
119       option --branch=1.0:foo
120
121       Your repository has a special remote "bar", and you want to  share  in‐
122       formation about which annexed files are stored in it, but without shar‐
123       ing anything about the configuration of the remote.
124
125        git-annex filter-branch --all --include-all-key-information      --in‐
126       clude-all-repo-config       --exclude-repo-config-for=bar         --in‐
127       clude-global-config
128

SEE ALSO

130       git-annex(1)
131
132       git-annex-forget(1)
133

AUTHOR

135       Joey Hess <id@joeyh.name>
136
137                                                    git-annex-filter-branch(1)
Impressum