Commit graph

645 commits

Author SHA1 Message Date
Joey Hess
7f7ae7a3b1 find: Support --print0
It would be nice if command-specific options were supported. The first
difficulty is that which command is being called is not known until after
getopt; but that could be worked around by finding the first non-dashed
parameter. Storing the settings without putting them in the annex monad is
the next difficulty; it could perhaps be handled by making the seek stage
pass applicable settings into the start stage (and from there on to perform
as needed). But that still leaves a problem, what data type to use to
represent the options between getopt and seek?
2011-11-22 14:06:31 -04:00
Joey Hess
6d9f525f64 clarify 2011-11-16 11:59:17 -04:00
Joey Hess
bfe38f8ff1 status --json --fast for esc
* status: Fix --json mode (only the repository lists are currently
  displayed)
* status: --fast is back
2011-11-14 19:27:22 -04:00
Joey Hess
3d3e1c4c25 better command name 2011-10-31 15:18:41 -04:00
Joey Hess
380839299e The fromkey command now takes the key as its first parameter. The --key option is no longer used. 2011-10-31 12:56:07 -04:00
Joey Hess
cc1ea8f844 Removed the setkey command, and added a setcontent command with a more useful interface. 2011-10-31 12:33:41 -04:00
Joey Hess
f65100b408 Revert "as far as I know, --bwlimit does not accept unit, it always takes kilobytes"
This reverts commit aeb4e285eb.

bup's --bwlimit does take a unit, unlike rsync's.
2011-10-28 21:24:24 -04:00
http://nicolas-schodet.myopenid.com/
aeb4e285eb as far as I know, --bwlimit does not accept unit, it always takes kilobytes 2011-10-29 01:01:38 +00:00
Joey Hess
6c31e3a8c3 drop --from is now supported to remove file content from a remote. 2011-10-28 17:26:38 -04:00
Joey Hess
f66f97c90e document the little-known get --from 2011-10-27 19:04:12 -04:00
Joey Hess
ae2b1308a6 reorg 2011-10-14 18:23:17 -04:00
Joey Hess
9fa9214106 A remote can have a annexUrl configured, that is used by git-annex instead of its usual url. (Similar to pushUrl.) 2011-10-14 18:18:28 -04:00
Joey Hess
ed00bdb995 foo 2011-09-28 18:11:53 -04:00
Joey Hess
7d0adfc5e8 typo 2011-09-28 17:48:45 -04:00
Joey Hess
4afdd34e89 Merge branch 'master' into unusedfull 2011-09-28 14:08:36 -04:00
Joey Hess
b57a4566d3 mention that add --force adds ignored files 2011-09-25 14:34:07 -04:00
Joey Hess
d75da353b9 documentation/warning message update for future feature 2011-09-23 18:04:38 -04:00
Joey Hess
9f5c7a246b status: Massively sped up; remove --fast mode.
Using Sets is the right thing; they have constant size lookup like my
SizeList, and logn insertation, which beats nub to death.

Runs faster than --fast mode did before, and gives accurate counts.

13 seconds total runtime with a warm cache in a repository with 40 thousand
keys.
2011-09-20 18:57:05 -04:00
Joey Hess
cabbefd9d2 status: In --fast mode, all status info is displayed now; but some of it is only approximate, and is marked as such. 2011-09-20 18:13:08 -04:00
Joey Hess
33cd1ffbfe make find show files meeting limits, even when not present
find: Rather than only showing files whose contents are present, when used
with --exclude --copies or --in, displays all files that match the
specified conditions.

Note that this is a behavior change for find --exclude! Old behavior
can be gotten with find --in . --exclude=...
2011-09-18 20:42:15 -04:00
Joey Hess
9da23dff78 --copies=N can be used to make git-annex only operate on files with the specified number of copies.
(And --not --copies=N for the inverse.)
2011-09-18 20:23:08 -04:00
Joey Hess
d78b9f7d54 update man page for file matching options
(--in is not yet implemented)
2011-09-18 18:24:10 -04:00
Joey Hess
73769190b6 grouped commands into related sections 2011-09-15 22:22:43 -04:00
Joey Hess
cbd9ade075 remove now unnecessary git commits 2011-09-15 22:10:17 -04:00
Joey Hess
7b90cb72fc document --auto all in one place 2011-09-15 15:15:47 -04:00
Joey Hess
984c9fc052 remove optimize subcommand; use --auto instead
get, drop: Added --auto option, which decides whether to get/drop content
as needed to work toward the configured numcopies.

The problem with bundling it up in optimize was that I then found I wanted
to run an optmize that did not drop files, only got them. Considered adding
a --only-get switch to it, but that seemed wrong. Instead, let's make
existing subcommands optionally smarter.

Note that the only actual difference between drop and drop --auto is that
the latter does not even try to drop a file if it knows of not enough
copies, and does not print any error messages about files it was unable to
drop.

It might be nice to make get avoid asking git for attributes when not in
auto mode. For now it always asks for attributes.
2011-09-15 13:30:04 -04:00
Joey Hess
949b3f69d0 optimize: A new subcommand that either gets or drops file content as needed to work toward meeting the configured numcopies setting.
This is currently rather simplistic, though still useful.
In the future, it could become smarter about what content is stored where,
etc.
2011-09-14 13:47:22 -04:00
Joey Hess
2f4d4d1c45 basic json support
This includes a generic JSONStream library built on top of Text.JSON
(somewhat hackishly).

It would be possible to stream out a single json document describing
all actions, but it's probably better for consumers if they can expect
one json document per line, so I did it that way instead.

Output from external programs used for transferring files is not
currently hidden when outputting json, which probably makes it not very
useful there. This may be dealt with if there is demand for json
output for --get or --move to be parsable.

The version, status, and find subcommands have hand-crafted output and
don't do json. The whereis subcommand needs to be modified to produce
useful json.
2011-09-01 15:22:06 -04:00
Joey Hess
d1154d0837 init: Make description an optional parameter. 2011-08-29 14:13:38 -04:00
Joey Hess
bbba6c19bd update documentation for new, neutered key-value backends
Backends are now only used to generate keys (and check them); they
are not arbitrary key-value stores for data, because it turned out such
a store is better modeled as a special remote. Updated docs to not
imply backends do more than they do now.

Sometimes I'm tempted to rename "backend" to "keytype" or something,
which would really be more clear. But it would be an annoying transition
for users, with annex.backends etc.
2011-08-28 16:28:38 -04:00
Joey Hess
8a2197adfa Added annex-cost-command configuration, which can be used to vary the cost of a remote based on the output of a shell command.
Also avoided crashing if the user specified cost value cannot be parsed.
2011-08-18 12:20:47 -04:00
Joey Hess
228a724d1d improve docs for init 2011-08-17 14:44:31 -04:00
Joey Hess
3b5f722130 init no longer creates .gitattributes 2011-08-17 14:44:31 -04:00
Joey Hess
dede05171b addurl: --fast can be used to avoid immediately downloading the url.
The tricky part about this is that to generate a key, the file must be
present already. Worked around by adding (back) an URL key type, which
is used for addurl --fast.
2011-08-06 14:57:22 -04:00
Joey Hess
0c46cbab09 Support the standard git -c name=value
This allows eg, `git-annex -c annex.rsync-options=-6 get file`

The overridden git configs are not passed on to git plumbing commands
that are run. Perhaps someone will find a need to do that, but I don't yet
and it would require storing more state to know what config settings
have been overridden and need to be passed on.
2011-07-14 16:51:20 -04:00
Joey Hess
22a4f5b348 unannex: In --fast mode, file content is left in the annex, and a hard link made to it. 2011-07-04 16:06:28 -04:00
Joey Hess
a140f7148f documentation for using the web 2011-07-01 16:05:06 -04:00
Joey Hess
6ba866ca73 updates for web remote and removing URL backend 2011-07-01 15:39:30 -04:00
Joey Hess
af45d42224 Merge branch 'master' into v3
Conflicts:
	debian/changelog
2011-06-29 11:42:35 -04:00
Joey Hess
b3aaf980e4 --force will cause add, etc, to operate on ignored files. 2011-06-29 11:42:00 -04:00
Joey Hess
89fd7b34ce unused command updates for branches
Now that branches are more likely, unused needs to more explicitly warn
that it does not look in them.
2011-06-23 12:23:25 -04:00
Joey Hess
ad3770e0b2 add merge subcommand 2011-06-22 18:46:56 -04:00
Joey Hess
b1acf41036 update documentation that mentioned .git-annex/ 2011-06-22 17:26:34 -04:00
Joey Hess
f547277b75 Allow --trust etc to specify a repository by name, for temporarily trusting repositories that are not configured remotes. 2011-06-13 22:19:44 -04:00
Joey Hess
90dd245522 get --from is the same as copy --from
get not honoring --from has surprised me a few times, so least surprise
suggests it should just behave like copy --from. This leaves the difference
between get and copy being that copy always requires the remote to copy
from, while get will decide whether to get a file from a key/value store or
a remote.
2011-06-09 18:54:49 -04:00
Joey Hess
a8fb97d2ce Add --trust, --untrust, and --semitrust options. 2011-06-01 17:57:31 -04:00
Joey Hess
3d567aa64f Add --numcopies option. 2011-06-01 16:49:17 -04:00
Joey Hess
93a4f3d4e6 Add --debug option. Closes: #627499
This takes advantage of the debug logging done by missingh, and I added
my own debug messages for executeFile calls. There are still some other
low-level ways git-annex runs stuff that are not shown by debugging,
but this gets most of it easily.
2011-05-21 11:52:13 -04:00
Joey Hess
a8816efc14 status: New subcommand to show info about an annex, including its size. 2011-05-16 21:18:34 -04:00
Joey Hess
43f0a666f0 unused: Now also lists files fsck places in .git/annex/bad/ 2011-04-29 13:59:00 -04:00
Joey Hess
dbea472f06 update 2011-04-09 15:57:45 -04:00
Joey Hess
f3cf20d22a document bup special remotes 2011-04-08 14:56:57 -04:00
Joey Hess
868300d4c1 unused/dropunused: support --from 2011-04-02 21:35:02 -04:00
Joey Hess
0a4c610b4f initremote works 2011-03-29 14:55:59 -04:00
Joey Hess
b1db436816 started on initremote 2011-03-28 23:22:31 -04:00
Joey Hess
235720d27e tweak 2011-03-28 22:05:11 -04:00
Joey Hess
58af574934 generalize special remote configuration storage 2011-03-28 19:08:12 -04:00
Joey Hess
3162a724f1 S3 updates; gpg keys 2011-03-28 13:48:17 -04:00
Joey Hess
3bdc5eb290 will need gpg encryption for s3 2011-03-28 08:40:05 -04:00
Joey Hess
1878745a46 more s3 docs 2011-03-28 02:13:26 -04:00
Joey Hess
4868b64868 Provide a less expensive version of git annex copy --to, enabled via --fast. This assumes that location tracking information is correct, rather than contacting the remote for every file. 2011-03-27 18:34:30 -04:00
Joey Hess
8bcdf42b99 annex.diskreserve can be given in arbitrary units (ie "0.5 gigabytes") 2011-03-26 14:37:39 -04:00
Joey Hess
6246b807f7 migrate: Support migrating v1 SHA keys to v2 SHA keys with size information that can be used for free space checking. 2011-03-23 17:57:10 -04:00
Joey Hess
1ea373e246 clarify 2011-03-22 18:52:52 -04:00
Joey Hess
368e20eb84 diskreserve setting
Add annex.diskreserve config setting, to control how much free space to
reserve for other purposes and avoid using (defaults to 1 mb).
2011-03-22 17:53:40 -04:00
Joey Hess
c21998722c fast mode
Add --fast flag, that can enable less expensive, but also less thurough versions of some commands.

* Add --fast flag, that can enable less expensive, but also less thurough
  versions of some commands.
* fsck: In fast mode, avoid checking checksums.
* unused: In fast mode, just show all existing temp files as unused,
  and avoid expensive scan for other unused content.
2011-03-22 17:41:06 -04:00
Joey Hess
828a84ba33 Add version command to show git-annex version as well as repository version information. 2011-03-19 14:33:24 -04:00
Joey Hess
d7ef5fd294 add explicit upgrade command 2011-03-16 15:48:26 -04:00
Joey Hess
49b7f59183 test suite passes again
doesn't test remote functionality.. but that may be working too now
2011-03-15 22:53:14 -04:00
Joey Hess
2e1cc2f8b9 fixed dropkey, setkey, and git-annex-shell subcommands
key is now specified as the full key, no --backend needed
2011-03-15 22:42:34 -04:00
Joey Hess
27472710c7 initial pass at doc update 2011-03-15 22:19:44 -04:00
Joey Hess
0de3005c64 whereis: New subcommand to show where a file's content has gotten to. 2011-03-05 17:23:55 -04:00
Joey Hess
1de12a2918 document describe command 2011-03-03 16:58:52 -04:00
Joey Hess
a9d0538da5 updates for bare repo support 2011-03-03 15:59:16 -04:00
http://sunny256.sunbase.org/
399be58538 Typo fixes in git-annex.mdwn 2011-02-15 05:42:20 +00:00
Joey Hess
0c7d17ae06 new map subcommand, basically working
Still todo:

- add repos from uuid.log that were not directly found
- group repos into their respective hosts
- display inaccessible repos and broken remote connections in red
- anonymize the url display somewhat, so the maps can be shared
- use uuid info to tell when two apparently different repos are actually
  the same repo accessed in different ways
2011-02-03 19:05:15 -04:00
Joey Hess
c77ac11acc unannex: Commit staged changes at end
to avoid some confusing behavior with the pre-commit hook, which would see
some types of commits after an unannex as checking in of an unlocked file.
2011-02-01 21:27:23 -04:00
Joey Hess
e6da7eb177 Improved temp file handling
* Improved temp file handling. Transfers of content can now be resumed
  from temp files later; the resume does not have to be the immediate
  next git-annex run.
* unused: Include partially transferred content in the list.
2011-01-28 14:10:50 -04:00
Joey Hess
7f6af79232 trust setting improvements 2011-01-26 16:20:28 -04:00
Joey Hess
268cb35e64 implement 3 level trust storage in trust.log 2011-01-26 15:37:16 -04:00
Joey Hess
f7e3d6eea2 document 3-level trust 2011-01-26 14:09:06 -04:00
Joey Hess
6a97b10fcb rework config storage
Moved away from a map of flags to storing config directly in the AnnexState
structure. Got rid of most accessor functions in Annex.

This allowed supporting multiple --exclude flags.
2011-01-26 00:17:38 -04:00
Joey Hess
f8e303e1c9 document interaction of annex-ignore with --from/--to 2011-01-25 18:54:34 -04:00
Joey Hess
23686cc63d clarify default values when no path is specified
Much of the code to handle this was unnecessary, as git ls-files is used,
and defaults to returning all files of the desired type.
2011-01-13 23:36:58 -04:00
Joey Hess
a78b0555e1 New migrate subcommand can be used to switch files to using a different backend, safely and with no duplication of content. 2011-01-08 15:54:14 -04:00
Joey Hess
f48658d4ee Now rsync is exclusively used for copying files to and from remotes. scp is not longer supported. 2010-12-31 19:11:18 -04:00
Joey Hess
7a52b34e06 add git-annex-shell command
This is not yet complete, as it does not allow starting rsync or scp.
2010-12-30 16:52:24 -04:00
Joey Hess
aa4f91b2d6 Add trust and untrust subcommands, to allow configuring remotes that are trusted to retain files without explicit checking. 2010-12-28 17:17:02 -04:00
Joey Hess
eef009fa2a formatting 2010-12-10 17:30:13 -04:00
Joey Hess
2099407d8a Add --exclude option to exclude files from processing.
Required some lifting so flags are evaled in the Annex monad before
file filtering.
2010-12-08 14:07:49 -04:00
Joey Hess
57305570eb Add uninit subcommand. Closes: #605749 2010-12-03 00:33:41 -04:00
Joey Hess
b9320ee1d5 use rsync for all remote file transfers 2010-12-02 17:45:28 -04:00
Joey Hess
ca32c7859b The git-annex-backend attribute has been renamed to annex.backend. 2010-11-28 18:58:03 -04:00
Joey Hess
9d82e815ff change name of numcopies attribute 2010-11-28 18:55:49 -04:00
Joey Hess
1d78dc2c8d update docs 2010-11-28 17:54:42 -04:00
Joey Hess
653ad35a9f In .gitattributes, the git-annex-numcopies attribute can be used to control the number of copies to retain of different types of files. 2010-11-28 15:28:20 -04:00
Joey Hess
e97d13e29b Add copy subcommand. 2010-11-27 17:02:53 -04:00
Joey Hess
11096c200f fsck no longer runs unused 2010-11-15 18:22:50 -04:00
Joey Hess
d6f7ee7db4 clearify 2010-11-15 18:19:13 -04:00
Joey Hess
748a7475bb dropunused 2010-11-15 18:04:19 -04:00
Joey Hess
9dc43d2599 unused: New subcommand, finds unused data (the global part of fsck). 2010-11-15 16:35:06 -04:00
Joey Hess
a5c4dd9743 find: New subcommand. 2010-11-14 12:35:05 -04:00
Joey Hess
5fa25a812a fsck improvements
* fsck: Check if annex.numcopies is satisfied.
* fsck: Verify the sha1 of files when the SHA1 backend is used.
* fsck: Verify the size of files when the WORM backend is used.
* fsck: Allow specifying individual files to fsk if fscking everything
  is not desired.
* fsck: Fix bug, introduced in 0.04, in detection of unused data.
2010-11-13 14:59:27 -04:00
Joey Hess
16ba23d48d tweak 2010-11-10 14:10:48 -04:00
Joey Hess
99d9c1cf89 edit an alias for unlock 2010-11-10 13:28:04 -04:00
Joey Hess
515d6b6c7d Avoid using runghc to run test suite as it is not available on all architectures. Closes: #603006 2010-11-10 10:49:35 -04:00
Joey Hess
d56feda25d maybe call it unlock and not checkout
It'd be confusing to have a git-annex subcommand with the same name as a
git subcommand.
2010-11-09 15:11:45 -04:00
Joey Hess
75d2925082 Merge branch 'master' into checkout
Conflicts:
	debian/changelog
	doc/backends.mdwn
2010-11-09 15:05:08 -04:00
Joey Hess
6395b790ce Reorganised the layout of .git/annex/ 2010-11-08 17:00:34 -04:00
Joey Hess
ab4de45491 Add annex.version, which will be used to automate upgrades. 2010-11-08 14:39:12 -04:00
Joey Hess
377bf24d9a documentation for checkout 2010-11-07 21:02:25 -04:00
Joey Hess
016b6a59e7 add fsck subcommand (stub) 2010-11-06 17:06:59 -04:00
Joey Hess
59e49ae083 rework subcommand invocation logic 2010-11-01 15:40:28 -04:00
Joey Hess
524125e52e fix 2010-11-01 00:28:52 -04:00
Joey Hess
4b9990194c expand 2010-11-01 00:27:27 -04:00
Joey Hess
11215b5b11 cleanup 2010-11-01 00:26:47 -04:00
Joey Hess
e638f9647d add global fallback for per-repo options 2010-11-01 00:17:26 -04:00
Joey Hess
0194394be6 Added remote.annex-scp-options and remote.annex-ssh-options. 2010-10-31 22:56:56 -04:00
Joey Hess
ecfbc01ff8 Add --verbose 2010-10-28 14:04:22 -04:00
Joey Hess
e44c7d1136 update 2010-10-27 15:08:46 -04:00
Joey Hess
7c65a18f1f doc pointer 2010-10-27 14:40:50 -04:00
Joey Hess
563484e135 pre-commit hook 2010-10-27 14:33:44 -04:00
Joey Hess
3281a1cb19 don't try to set up .gitattributes every time; only do it on git annex init 2010-10-27 13:55:28 -04:00
Joey Hess
99eaf41da5 better messages 2010-10-25 20:48:32 -04:00
Joey Hess
fec9f611df add setkey subcommand
And finished implementing move --to
2010-10-25 20:19:08 -04:00
Joey Hess
d0a9cdadaf add dropkey subcommand and --quiet
Needed for better git annex move --from
2010-10-25 18:32:29 -04:00
Joey Hess
5a91543be3 update 2010-10-23 12:41:13 -04:00
Joey Hess
ff38e49eb4 --from/--to can be used to limit the remote repository that git-annex uses. 2010-10-22 20:35:39 -04:00
Joey Hess
599cb15f30 update 2010-10-22 15:08:53 -04:00
Joey Hess
9ec5d90b6a avoid reading configs for URL remotes every time 2010-10-22 14:28:47 -04:00
Joey Hess
514b98ff55 document move subcommand 2010-10-21 17:59:32 -04:00
Joey Hess
19fde4960d new fromkey subcommand, for registering urls, etc
had to redo Annex monad's flag storage
2010-10-21 16:30:16 -04:00
Joey Hess
d6911f57b7 update 2010-10-19 16:17:29 -04:00
Joey Hess
7bc4435ffd update 2010-10-19 15:59:40 -04:00
Joey Hess
e8267f1b9e add doc wiki 2010-10-19 14:37:19 -04:00
Joey Hess
939a6f860e thoughts 2010-10-17 23:53:01 -04:00
Joey Hess
bb6707020d update 2010-10-17 18:52:01 -04:00
Joey Hess
632a4e2c6d rename describe to init and show usage 2010-10-17 17:10:20 -04:00
Joey Hess
a4dc920f6b remove some old todos 2010-10-17 16:44:06 -04:00
Joey Hess
cb1a0a387f update 2010-10-17 11:51:53 -04:00
Joey Hess
da453ba701 bugfix: don't add files under .git-annex
That could happen if git annex add -N were used repeatedly..
2010-10-16 22:36:35 -04:00
Joey Hess
b02a3b3f5b add fix subcommand 2010-10-16 21:03:25 -04:00
Joey Hess
909f619c07 tweaks 2010-10-16 16:20:49 -04:00
Joey Hess
81d628a8cd updatte 2010-10-16 15:58:42 -04:00
Joey Hess
a31dc74806 update 2010-10-16 15:23:03 -04:00
Renamed from git-annex.mdwn (Browse further)