summaryrefslogtreecommitdiff
path: root/doc/tips/powerful_file_matching.mdwn
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-10-17 13:56:36 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-10-17 13:56:36 -0400
commit617bdc740f76e0b5cb8d73a8b122cd2b3e6fe961 (patch)
tree92c932685e19b1df6bd453810e9a4052cdf92f3e /doc/tips/powerful_file_matching.mdwn
parent66fa4c947c30ca9848121912229f3e84a855a74f (diff)
reorg
Diffstat (limited to 'doc/tips/powerful_file_matching.mdwn')
-rw-r--r--doc/tips/powerful_file_matching.mdwn36
1 files changed, 36 insertions, 0 deletions
diff --git a/doc/tips/powerful_file_matching.mdwn b/doc/tips/powerful_file_matching.mdwn
new file mode 100644
index 000000000..d5d29377c
--- /dev/null
+++ b/doc/tips/powerful_file_matching.mdwn
@@ -0,0 +1,36 @@
+git-annex has a powerful syntax for making it act on only certian files.
+
+The simplest thing is to exclude some files, using wild cards:
+
+ git annex get --exclude '*.mp3' --exclude '*.ogg'
+
+But you can also exclude files that git-annex's [[location_tracking]]
+information indicates are present in a given repository. For example,
+if you want to populate newarchive with files, but not those already
+on oldarchive, you could do it like this:
+
+ git annex copy --not --in oldarchive --to newarchive
+
+Without the --not, --in makes it act on files that *are* in the specified
+repository. So, to remove files that are on oldarchive:
+
+ git annex drop --in oldarchive
+
+Or maybe you're curious which files have a lot of copies, and then
+also want to know which files have only one copy:
+
+ git annex find --copies 7
+ git annex find --not --copies 2
+
+The above are the simple examples of specifying what files git-annex
+should act on. But you can specify anything you can dream up by combining
+the things above, with --and --or -( and -). Those last two strange-looking
+options are parentheses, for grouping other options. You will probably
+have to escape them from your shell.
+
+Here are the mp3 files that are in either of two repositories, but have
+less than 3 copies:
+
+ git annex find --not --exclude '*.mp3' --and \
+ -\( --in usbdrive --or --in archive -\) --and \
+ --not --copies 3