Joey Hess
f600444ab6
unused --remote: Reduced memory use to 1/4th what was used before.
...
Using a single strictness annotation, in just the right place.
Tried several others, none of which helped and some of which potentially
hurt. This is only the second time I've really had to deal with this in
a year of using haskell, which is, I suppose not that bad.
2011-08-31 19:13:02 -04:00
Joey Hess
d1154d0837
init: Make description an optional parameter.
2011-08-29 14:13:38 -04:00
Joey Hess
678726c10c
code simplification thanks to applicative functors
2011-08-25 01:27:19 -04:00
Joey Hess
203148363f
split groups of related functions out of Utility
2011-08-22 16:14:12 -04:00
Joey Hess
737b5d14c9
moved files around
2011-08-20 16:11:42 -04:00
Joey Hess
cf33eff684
git-annex-shell configlist should not be standalone
...
This makes it initialize the repository with a uuid, and list the uuid,
allowing automatic setup of bare repositories when git-annex is used.
2011-08-17 14:44:31 -04:00
Joey Hess
56f6923ccb
Now "git annex init" only has to be run once
...
when a git repository is first being created. Clones will automatically
notice that git-annex is in use and automatically perform a basic
initalization. It's still recommended to run "git annex init" in any
clones, to describe them.
2011-08-17 14:44:31 -04:00
Joey Hess
a55faff08f
reorg Remote/*
2011-08-16 20:49:54 -04:00
Joey Hess
4545a0e78c
split out generic url stuff into a helper library from Remote.Web
2011-08-16 20:49:44 -04:00
Joey Hess
5000aba76e
avoid namespace conflict
2011-08-16 20:47:48 -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
00153eed48
unify elipsis handling
...
And add a simple dots-based progress display, currently only used in v2
upgrade.
2011-07-19 14:07:23 -04:00
Joey Hess
6c396a256c
finished hlint pass
2011-07-15 12:47:14 -04:00
Joey Hess
9bb797c0ea
unannex: only commit, no -a
...
-a is actually not needed; only commit staged changes
2011-07-14 17:18:53 -04:00
Joey Hess
ded2591124
unannex: Clean up use of git commit -a.
...
This was more complex than would be expected. unannex has to use git commit -a
since it's removing files from git; git commit filelist won't do.
Allow commands to be added to the Git queue that have no associated files,
and run such commands once.
2011-07-14 17:15:37 -04:00
Joey Hess
40c6ba99f5
add: Be even more robust to avoid ever leaving the file seemingly deleted.
...
A failure at any point after the file is annexed will result in an undo
that puts the original file back into place and wipes the location log.
2011-07-07 21:30:51 -04:00
Joey Hess
67dcc1f171
add: Avoid a failure mode that resulted in the file seemingly being deleted (content put in the annex but no symlink present).
2011-07-07 19:29:36 -04:00
Joey Hess
cab4ac247c
rename
2011-07-05 20:36:43 -04:00
Joey Hess
c98b5cf36e
rename
2011-07-05 20:24:10 -04:00
Joey Hess
6040d8aed1
factor out RemoteLog
2011-07-05 20:16:57 -04:00
Joey Hess
9f1577f746
remove unused backend machinery
...
The only remaining vestiage of backends is different types of keys. These
are still called "backends", mostly to avoid needing to change user interface
and configuration. But everything to do with storing keys in different
backends was gone; instead different types of remotes are used.
In the refactoring, lots of code was moved out of odd corners like
Backend.File, to closer to where it's used, like Command.Drop and
Command.Fsck. Quite a lot of dead code was removed. Several data structures
became simpler, which may result in better runtime efficiency. There should
be no user-visible changes.
2011-07-05 19:57:46 -04:00
Joey Hess
d31b84c777
better display of thrown errors
2011-07-05 14:58:33 -04:00
Joey Hess
71c783bf24
uninit: Use unannex in --fast mode, to support unannexing multiple files that link to the same content.
2011-07-04 16:20:50 -04:00
Joey Hess
d7ce51af5a
fix usage for setkey
2011-07-04 16:13:44 -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
5beb6bc76f
uninit: delete .git/annex/
2011-07-04 15:55:03 -04:00
Joey Hess
5c63b409d4
uninit: Delete the git-annex branch.
2011-07-04 15:50:30 -04:00
Joey Hess
ace9de37e8
download urls via tmp file, and support resuming
2011-07-01 18:59:40 -04:00
Joey Hess
6bddebdb79
add the addurl command
2011-07-01 17:15:46 -04:00
Joey Hess
cdbcd6f495
add web special remote
...
Generalized LocationLog to PresenceLog, and use a presence log to record
urls for the web special remote.
2011-07-01 15:30:42 -04:00
Joey Hess
f6063a094e
renamed GitRepo to Git
...
It was always imported qualified as Git anyway
2011-06-30 13:21:39 -04:00
Joey Hess
2cda9d0a0f
generalized safeWriteFile to viaTmp
2011-06-30 00:46:39 -04:00
Joey Hess
06a1f5f742
factor out file list stuff from GitRepo
...
GitRepo is getting too large an interface; these all fit nicely into a
submodule.
2011-06-29 11:55:16 -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
7ee636f6dd
avoid unnecessary read of trust.log
2011-06-23 13:39:04 -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
af10b2854a
v3 upgrade code works
...
but write the index file a lot, so slow
2011-06-23 02:30:20 -04:00
Joey Hess
aad73c5721
rewrite loggedkeys to use git-annex branch
...
That sucking sound is a whole page of code vanishing to be replaced with
return . catMaybes . map (logFileKey . takeFileName) =<< Branch.files
What can I say, git is my database, and haskell my copilot.
2011-06-22 23:24:14 -04:00
Joey Hess
ad3770e0b2
add merge subcommand
2011-06-22 18:46:56 -04:00
Joey Hess
80302d0b46
improve bare repo handing
...
Many more commands can work in bare repos now, thanks to the git-annex
branch.
2011-06-22 18:32:41 -04:00
Joey Hess
944c51ba26
improve version checking for v3
...
Do not set annex.version whenever any command is run. Just do it in init.
This ensures that, if a repo has annex.version=3, it has a git-annex
branch, so we don't have to run a command every time to check for the
branch.
Remove the old ad-hoc logic for v0 and v1, to simplify version checking.
2011-06-22 18:07:45 -04:00
Joey Hess
4c4ebf2d75
store trust.log and remote.log in the git-annex branch
...
.. and I think that's everything that will use the branch
2011-06-22 17:08:51 -04:00
Joey Hess
1870186632
fixed logFile
2011-06-22 16:17:16 -04:00
Joey Hess
e0bd9d43a2
update for git-annex branch
...
stop changing gitattributes on init
create git-annex branch on init
ugly special case for init in a bare repository goes away, yay!
git annex init is also faster, at least in a large existing repo, as
it does not need to run the slow 'git add'
2011-06-22 16:03:26 -04:00
Joey Hess
5c706d1ec4
stop undoing gitattributes on uninit
...
v2 upgrade will undo them
2011-06-22 16:03:09 -04:00
Joey Hess
d3f0106f2e
move LocationLog into Annex monad from IO
...
It will need to run in Annex so it can use Branch
2011-06-22 14:27:50 -04:00
Joey Hess
9f9e17aa0f
unlock: Made atomic.
2011-06-20 22:38:18 -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
703c437bd9
rename modules for data types into Types/ directory
2011-06-01 21:56:04 -04:00
Joey Hess
971ab27e78
better types allowed breaking module dep loop
2011-06-01 19:11:27 -04:00
Joey Hess
a8fb97d2ce
Add --trust, --untrust, and --semitrust options.
2011-06-01 17:57:31 -04:00
Joey Hess
869cb82f49
remove unnecessary imports
2011-06-01 11:53:43 -04:00
Joey Hess
038da52bdd
Somewhat sped up git commit
of modifications to unlocked files.
...
Avoid git reset here too, so I no longer need to care that it's much more
expensive than seems wise (but I asked the git list about that anyway).
It's not necessary to reset the staged file content from the index, as
the `git add` of the the symlink will replace it anyway.
`git commit` of unlocked files is still slow, since git still has to shove
their entire content into the index, only to have it be thrown away. So it's
still better to use `git annex add`
2011-05-31 16:08:37 -04:00
Joey Hess
fb259033d4
Fix locking of files with staged changes.
...
Previously, lock would skip files that had staged changes, but that is
counterintuitive, I think.
2011-05-31 15:00:56 -04:00
Joey Hess
fafe60768f
Massively sped up git annex lock
by avoiding use of the uber-slow git reset
, and only running git checkout
once, even when many files are being locked.
2011-05-31 14:50:41 -04:00
Joey Hess
86c5bd0327
unused --from . checks local repo, for consistency
2011-05-28 22:37:17 -04:00
Joey Hess
14ffb5d47b
bugfix: fix unused list numbering
...
Introduced in 43f0a666f0
2011-05-28 22:30:06 -04:00
Joey Hess
66a99d3740
tweak
2011-05-28 22:24:48 -04:00
Joey Hess
25b13673f0
improve unused command's output
...
Display the name of the remote being checked, with "." for the current
remote, echoing the way describe takes that to change its description.
2011-05-28 22:20:22 -04:00
Joey Hess
fdead6b9bb
improve error message when no remote name is specified
...
list available remotes in case user wanted to use or change one of them
2011-05-28 21:58:48 -04:00
Joey Hess
c38f826435
Data.Tuple.swap not available with ghc 6.12.3
2011-05-28 11:56:48 -04:00
Joey Hess
f81c1f10e6
show a warning message when failing to find requested key
...
Otherwise, the user sees only a rsync protocol error message and then
git-annex's less specific failure message.
2011-05-22 14:03:06 -04:00
Joey Hess
c91929f693
add whenM and unlessM
...
Just more golfing.. I am pretty sure something in a library somewhere can
do this, but I have been unable to find it.
2011-05-17 03:13:11 -04:00
Joey Hess
75a3f5027f
tweak
2011-05-17 01:59:44 -04:00
Joey Hess
33e6425d10
tweak
2011-05-16 22:49:41 -04:00
Joey Hess
21953a802a
am I silly to worry about length overflowing int max?
2011-05-16 22:22:37 -04:00
Joey Hess
5068985020
rejigger what's --fast
2011-05-16 22:19:15 -04:00
Joey Hess
1e3da8efb0
add info about any temp files and bad content files
2011-05-16 22:01:50 -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
d006586cd0
add a message in potenatially confusing copy --fast failure situation
2011-05-16 13:27:19 -04:00
Joey Hess
93c5fb5da7
support remote config values with spaces and other characters
2011-05-16 13:07:56 -04:00
Joey Hess
ceff04ff3e
better multiword parameter handling
...
This way, individual words as entered on the command line are available
to commands.
2011-05-16 12:25:54 -04:00
Joey Hess
5256a6b011
migrate: Use current filename when generating new key, for backends where the filename affects the key name.
2011-05-16 12:10:08 -04:00
Joey Hess
cad0e1c8b7
simplified a bunch of Maybe handling
2011-05-15 03:38:08 -04:00
Joey Hess
56bc3e95ca
refactor some boilerplate
2011-05-15 02:02:46 -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
76911a446a
Avoid using absolute paths when staging location log, as that can confuse git when a remote's path contains a symlink. Closes : #621386
...
This was a real PITA to fix, since location logs can be staged in
both the current repo, as well as in local remote's repos, in
which case the cwd will not be in the repo. And git add needs different
params in both cases, when absolute paths are not used.
In passing, git annex fsck now stages location log fixes.
2011-04-25 14:54:24 -04:00
Joey Hess
1e84dab4c8
RemoteConfig type
2011-04-15 15:09:36 -04:00
Joey Hess
8ad901a647
refactor
2011-04-09 14:26:32 -04:00
Joey Hess
bc51387e6d
Periodically flush git command queue, to avoid boating memory usage too much.
...
Since the queue is flushed in between subcommand actions being run,
there should be no issues with actions that expect to queue up some stuff
and have it run after they do other stuff. So I didn't have to audit for
such assumptions.
2011-04-07 13:59:31 -04:00
Joey Hess
868300d4c1
unused/dropunused: support --from
2011-04-02 21:35:02 -04:00
Joey Hess
ed7fc4fce9
Bugfix: copy --to --fast never really copied, fixed.
2011-04-01 12:34:06 -04:00
Joey Hess
0a4c610b4f
initremote works
2011-03-29 14:55:59 -04:00
Joey Hess
05751d55cd
clean up remote.log handling
2011-03-29 14:10:12 -04:00
Joey Hess
b1db436816
started on initremote
2011-03-28 23:22:31 -04:00
Joey Hess
996e5eee01
Merge branch 'master' into s3
...
Conflicts:
debian/changelog
2011-03-28 16:34:58 -04:00
Joey Hess
0956f0dd15
fsck: Ensure that files and directories in .git/annex/objects have proper permissions.
2011-03-28 16:19:20 -04:00
Joey Hess
28bf28a73c
rename
2011-03-27 19:23:00 -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
a70035e981
converted move to use Remote
...
Drop old Remotes.hs, now unused!
2011-03-27 17:24:20 -04:00
Joey Hess
0d83d17f04
convert map to use new code
2011-03-27 17:00:05 -04:00
Joey Hess
30f427700f
converted several commands to use Remote
...
only move and map still to convert
2011-03-27 16:55:43 -04:00
Joey Hess
03fdd0d56e
dropunused: Significantly sped up; only read unused log file once.
2011-03-23 23:47:02 -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
ad08273ac5
refactor
2011-03-23 17:29:54 -04:00
Joey Hess
8beb72e206
migrate: Bugfix for case when migrating a file results in a key that is already present in .git/annex/objects.
...
For example, this could happen if using SHA1 and a file with content
"foo" were added to that backend. Then a file with "content" foo were
migrated from the WORM backend.
Assume that, if a backend assigned the same key, the already annexed
content must be the same. So, the "old" content can be reused.
2011-03-23 17:25:28 -04:00
Joey Hess
3a41923789
clarify wording
...
temp files are always assumed to be unused, in either mode
2011-03-22 18:53:16 -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
aa2d8e33df
free space checking
...
Free space checking is now done, for transfers of data for keys that have free space metadata.
(Notably, not for SHA* keys generated with git-annex 0.24 or earlier.)
The code is believed to work on Linux, FreeBSD, and OSX; check compile-time
messages to see if it is not enabled for your OS.
2011-03-22 17:27:04 -04:00
Joey Hess
c048905dc4
upgrade messages
2011-03-21 20:48:58 -04:00
Joey Hess
6634b6a6b8
imcomplete attempt at supporting lutimes(3) for BSD compat
2011-03-20 14:09:24 -04:00
Joey Hess
140a351fc5
avoid version check before running version and upgrade commands
...
There are two types of commands; those that access the repository and those
that don't. Sorted.
2011-03-19 18:58:49 -04:00
Joey Hess
54c39d09ba
need to explicitly run upgrade now
2011-03-19 18:58:10 -04:00
Joey Hess
6a2a17658c
No longer auto-upgrade to repository format 2, to avoid accidental upgrades, etc. Use git-annex upgrade when you're ready to run this version.
2011-03-19 18:33:39 -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
5eb76d2b03
improve upgrade
2011-03-16 11:53:46 -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
9d24cc7bdb
make commands that take a key as a parameter error if it's bad
2011-03-15 22:46:47 -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
4594bd51c1
rename file
2011-03-15 22:04:50 -04:00
Joey Hess
9d49fe2c17
first pass at using new keys
...
It compiles. It sorta works. Several subcommands are FIXME marked and
broken, because things that used to accept separate --backend and --key
params need to be changed to accept just a --key that encodes all the key
info, now that there is metadata in keys.
2011-03-15 21:34:13 -04:00
Joey Hess
83a9bb624b
fix error throwing
2011-03-15 11:50:40 -04:00
Joey Hess
bc5c54c987
symlink touching fun
...
When adding files to the annex, the symlinks pointing at the annexed
content are made to have the same mtime as the original file. While git
does not preserve that information, this allows a tool like metastore to be
used with annexed files.
2011-03-14 23:00:23 -04:00
Joey Hess
72d2684016
Rethink filename encoding handling for display. Since filename encoding may or may not match locale settings, any attempt to decode filenames will fail for some files. So instead, do all output in binary mode.
2011-03-12 15:30:17 -04:00
Joey Hess
ef92bd2b0b
add copy count
2011-03-05 17:41:36 -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
6c1607ce66
Support ssh remotes with a port specified.
2011-03-05 15:47:00 -04:00
Joey Hess
aad1372880
move repoConfig out of Remotes
2011-03-05 15:31:46 -04:00
Joey Hess
acde7a1736
improve GitRepos functions for pulling apart URL to repo
2011-03-05 15:13:16 -04:00
Joey Hess
7b2762fb92
better quoting of description via show
2011-03-03 17:22:17 -04:00
Joey Hess
657395b628
add describe subcommand
2011-03-03 17:21:00 -04:00
Joey Hess
b5b78f26ec
fix up commands that are trouble on bare repos
...
Most will just abort. init does a basic init and gives a command to
run elsewhere to finish it.
2011-03-03 16:40:55 -04:00
Joey Hess
b88637fff1
prevent trust commands from trying to do things in a bare repo
...
Since they need to stage changes, they would actually, if allowed to run,
succeed, but wipe out existing trust.log content.
2011-03-03 16:22:53 -04:00
Joey Hess
9f20aee219
avoid logging to location log when in a bare repo
...
This assumes that changes to content in bare repos are made from some
non-bare repo, and that the location log is updated on that side.
That's true for move --from and move --to.
It's *not* true for dropkey and setkey and recvkey. But those are plumbing
level commands, so I guess it's ok to assume that someone running those
in a bare repo knows what they're doing. And git-annex-shell is used to
run those, and if the bare repo is non-local, it needs to be able to use
them even though they cannot update the location log. So this seems
unavoidable.
2011-03-03 15:22:53 -04:00
Joey Hess
6206b46e60
fsck: Check for and repair location log damage.
2011-03-02 14:30:36 -04:00
Joey Hess
4cd96ad2db
rename
2011-02-28 16:25:31 -04:00
Joey Hess
fcdc4797a9
use ShellParam type
...
So, I have a type checked safe handling of filenames starting with dashes,
throughout the code.
2011-02-28 16:18:55 -04:00
Joey Hess
836e71297b
Support filenames that start with a dash; when such a file is passed to a utility it will be escaped to avoid it being interpreted as an option.
2011-02-25 01:13:01 -04:00
Joey Hess
5a50a7cf13
update unicode FilePath handling
...
Based on http://hackage.haskell.org/trac/ghc/ticket/3307 ,
whether FilePath contains decoded unicode varies by OS.
So, add a configure check for it.
Also, renamed showFile to filePathToString
2011-02-11 15:37:37 -04:00
Michael Kenney
285fb2bb08
Fixed missing import of Messages module
2011-02-10 21:06:00 -04:00
Joey Hess
fe55b4644e
Fix display of unicode filenames.
...
Internally, the filenames are stored as un-decoded unicode.
I tried decoding them, but then haskell tries to access the wrong files.
Hmm.
So, I've unhappily chosen option "B", which is to decode filenames before
they are displayed.
2011-02-10 14:21:44 -04:00
Joey Hess
35a6506812
unannex: Fix recently introduced bug when attempting to unannex more than one file at a time.
2011-02-09 11:02:21 -04:00
Joey Hess
81e045a539
tweak
2011-02-08 18:26:38 -04:00
Joey Hess
c1b69d1511
fill color for host boxes
2011-02-08 18:17:46 -04:00
Joey Hess
c0ec5a35db
show trusted repos in green
2011-02-08 18:04:19 -04:00
Joey Hess
3ae654254d
make remotes absolute while spidering
2011-02-08 17:52:32 -04:00
Joey Hess
97d5e23430
map bugfix
...
Need to find the absolute repo path before looking up the full info for the
repo. Otherwise, it doesn't find the right full info.
2011-02-08 17:46:52 -04:00
Joey Hess
ef2d4f650e
fix absrepo data loss
...
it was dropping the config map for the repos it changed
2011-02-04 01:56:45 -04:00
Joey Hess
926df3d91e
node ordering
2011-02-04 00:13:47 -04:00
Joey Hess
0fd0e414ec
color unreachable nodes
2011-02-04 00:06:23 -04:00
Joey Hess
67c1facad1
fix infinite loop
...
Local repos with the same path are not different. :)
2011-02-03 23:23:36 -04:00
Joey Hess
dff47d51e6
cleanup
2011-02-03 23:23:16 -04:00
Joey Hess
1b1a37b7b1
refactor
2011-02-03 22:44:17 -04:00
Joey Hess
17829be0fd
map improvements
...
added uuid.log repos
group repos by host
avoid displaying most urls
display remote names on edges
still some bugs
2011-02-03 22:20:55 -04: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
0e7984a793
add check for unclean tree
2011-02-01 22:02:19 -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
755029ae0e
use forM_ in a few places
2011-01-31 23:27:53 -04:00
Joey Hess
d007e58a54
use mapM_
2011-01-31 13:52:11 -04:00
Joey Hess
96e561bc47
use Set instead of existence Map
...
more efficient and idiomatic
I did try using Set.difference, it's still slower than my method.
2011-01-30 01:41:15 -04:00
Joey Hess
c64b50a0ce
shutdown no longer a special case
2011-01-29 23:32:32 -04:00
Joey Hess
5584ccc8ad
factor out pure code
2011-01-29 23:30:08 -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
04fe906ac6
use safewritefile
2011-01-28 12:35:51 -04:00
Joey Hess
167523f09d
better directory handling
...
Rename Locations functions for better consitency, and make their values
more consistent too.
Used </> rather than manually building paths. There are still more places
that manually do so, but are tricky, due to the behavior of </> when
the second FilePath is absolute. So I only changed places where
it obviously was relative.
2011-01-27 17:00:32 -04:00
Joey Hess
dee9655237
bugfix to move --to
...
Due to recent changes, the remotes config was not read before the remote
to act on was picked.
2011-01-27 15:45:22 -04:00
Joey Hess
e1d213d6e3
make filename available to fsck messages
2011-01-26 20:37:46 -04:00
Joey Hess
b7903eb2d1
move partitioning out of keyPossibilities
...
And a bug fix in passing.
2011-01-26 16:44:14 -04:00
Joey Hess
7f6af79232
trust setting improvements
2011-01-26 16:20:28 -04:00
Joey Hess
7b2da21ab7
avoid moving if src and dest are the same
2011-01-26 15:59:10 -04:00
Joey Hess
268cb35e64
implement 3 level trust storage in trust.log
2011-01-26 15:37:16 -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
109a719b03
parameterize Backend type
...
This allows the Backend type to not depend on the Annex type, and
so the Annex type can later be moved out of TypeInternals.
2011-01-25 21:02:34 -04:00
Joey Hess
e7b557ef5d
got rid of Core module
...
Most of it was to do with managing annexed Content, so put there
2011-01-16 16:05:05 -04:00
Joey Hess
59c9eda962
on second thought, unlock should fail if content is not present
2011-01-14 00:02:33 -04:00
Joey Hess
c1839fdccb
unlock: Fix behavior when file content is not present.
2011-01-13 23:46:02 -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
bb4a45f9ce
avoid crashing if run before unused log is present
2011-01-12 01:57:49 -04:00
Joey Hess
ba6727f663
always write log, so it's empty if nothing is unused
2011-01-12 01:57:32 -04:00
Joey Hess
e18a4d566b
migrate: Fix support for --backend option.
2011-01-11 21:32:38 -04:00
Joey Hess
caa0b6c0c2
quiet git commit messages
2011-01-11 18:49:45 -04:00
Joey Hess
9de982eab7
copyright years
2011-01-08 16:09:17 -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
32b0e10390
unannex: Now skips files whose content is not present, rather than it being an error. This allows gradual conversion from one backend to another by running unannex followed by add in each repository.
2011-01-08 15:14:41 -04:00
Joey Hess
6cb1dff757
quiet git commits
2011-01-07 13:57:37 -04:00
Joey Hess
e43d4730c5
bugfix: Running copy --to
when both local and remote had the key dropped it from local.
2011-01-07 02:14:22 -04:00
Joey Hess
f1b747e6d9
bugfix: Running move --to
with a remote whose UUID was not yet known
...
* bugfix: Running `move --to` with a remote whose UUID was not yet known
could result in git-annex not recording on the local side where the
file was moved to. This could not result in data loss, or even a
significant problem, since the remote *did* record that it had the file.
* Also, add a general guard to detect attempts to record information
about repositories with missing UUIDs.
2011-01-04 17:45:27 -04:00
Joey Hess
a857e1f4ee
git-annex-shell: Avoid exposing any git repo config except for the annex.uuid when doing configlist.
2011-01-04 17:34:14 -04:00
Joey Hess
700aed13cf
git-annex-shell now exclusively used for all remote access
2010-12-31 19:09:17 -04:00
Joey Hess
30e0065ab9
tuple makes it clearer
2010-12-31 15:52:59 -04:00
Joey Hess
eac433a84a
use git-annex-shell configlist
2010-12-31 15:46:33 -04:00
Joey Hess
60df4e5728
git-annex-shell is complete
...
still not used
2010-12-31 13:39:43 -04:00
Joey Hess
f38aa3e83a
unfinished switch to using git-annex-shell
2010-12-30 20:31:52 -04:00
Joey Hess
a5a302b77d
git-annex-shell mostly done now, only needs 2 more subcommands
2010-12-30 20:08:22 -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
a89a6f2114
refactor in preparation for adding a git-annex-shell command
2010-12-30 15:06:26 -04:00
Joey Hess
6a5be9d53c
rename some stuff and prepare to break out more into Command/*
2010-12-30 14:19:16 -04:00
Joey Hess
e64ffc212e
support trusted repositories that are not configured as remotes
2010-12-29 16:58:44 -04:00
Joey Hess
d475aac375
refactor
2010-12-29 16:21:38 -04:00
Joey Hess
1f20277ec7
forgot to add these
2010-12-28 17:44:55 -04:00
Joey Hess
dd55f21450
add a newline
2010-12-24 19:28:02 -04:00
Joey Hess
57305570eb
Add uninit subcommand. Closes : #605749
2010-12-03 00:33:41 -04:00
Joey Hess
9d82e815ff
change name of numcopies attribute
2010-11-28 18:55:49 -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
92e5d28ca8
precommit: Optimise to avoid calling git-check-attr more than once.
2010-11-28 14:21:30 -04:00
Joey Hess
6dfae19b1b
add
2010-11-27 17:09:22 -04:00
Joey Hess
e0518a4adc
Fix bug in setkey subcommand triggered by move --to.
2010-11-27 17:07:22 -04:00
Joey Hess
e97d13e29b
Add copy subcommand.
2010-11-27 17:02:53 -04:00
Joey Hess
eeae910242
finished hlinting
2010-11-22 17:51:55 -04:00
Joey Hess
161823d6ea
Only use cp -a if it is supported, falling back to cp -p or plain cp.
...
* cp --reflink=auto is used if supported, and will make git annex unlock
much faster on filesystems like btrfs that support copy of write.
2010-11-18 13:49:01 -04:00
Joey Hess
0893820812
fsck: Print warnings to stderr; --quiet can now be used to only see problems.
2010-11-15 18:37:49 -04:00
Joey Hess
a5e7f5329f
fix
2010-11-15 18:24:29 -04:00
Joey Hess
11096c200f
fsck no longer runs unused
2010-11-15 18:22:50 -04:00
Joey Hess
3a4e9398a1
add
2010-11-15 18:06:21 -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
0e55d6a907
move stuff out of Core
2010-11-14 14:44:24 -04:00
Joey Hess
a5c4dd9743
find: New subcommand.
2010-11-14 12:35:05 -04:00
Joey Hess
19ee56559a
better fsck file handling
2010-11-13 16:15:45 -04:00
Joey Hess
7293ba2940
fsck even files not in backend
2010-11-13 16:12:02 -04:00
Joey Hess
498c8e8544
fsck: avoid global checks if files specified
2010-11-13 16:03:25 -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
da0de293d1
refactor param seeking
2010-11-11 18:54:52 -04:00
Joey Hess
ce62f5abf1
rework command dispatching for add and pre-commit
...
Both subcommands do two different operations on different sets of files, so
allowing a subcommand to perform a list of operations cleans things up.
2010-11-11 17:58:55 -04:00
Joey Hess
dffe949963
Optimize both pre-commit and lock subcommands.
...
isLocked was doing the expensive check before the cheap one. Let's not
fork git diff twice per file when committing, especially.
git diff is still run more than strictly necessary (ie, more than once)
if multiple unlocked files are being committed. But much better now.
2010-11-11 14:54:29 -04:00
Joey Hess
fb824f7eb0
use -- before filenames when running git add, git rm, etc
2010-11-10 14:15:21 -04:00
Joey Hess
31101a8b27
use new git function
2010-11-10 14:08:28 -04:00
Joey Hess
d0886a9ac7
explicity run queue to git add files
2010-11-10 13:32:46 -04:00
Joey Hess
361d28e138
Unlocked files will now automatically be added back into the annex when committed (and the updated symlink committed), by some magic in the pre-commit hook.
2010-11-10 13:01:17 -04:00
Joey Hess
2ab448276c
fix handling of staged unlocked files
2010-11-10 13:01:01 -04:00
Joey Hess
55720885ae
set write bit on unlocked file
2010-11-10 12:50:00 -04:00
Joey Hess
91c5fe71af
add
2010-11-10 10:52:43 -04:00
Joey Hess
536bc97d25
lock and unlock subcommands
2010-11-09 15:59:49 -04:00
Joey Hess
1d32d902c9
Annexed file contents are now made unwritable and put in unwriteable directories, to avoid them accidentially being removed or modified. (Thanks Josh Triplett for the idea.)
2010-11-08 19:26:37 -04:00
Joey Hess
50ec22e322
set version on init
2010-11-08 16:40:28 -04:00
Joey Hess
070e8530c1
refactoring, no code changes really
2010-11-08 15:15:21 -04:00
Joey Hess
009873e0eb
fsck works
2010-11-07 18:22:25 -04:00
Joey Hess
ea8ccaa3d5
rough in fsck
2010-11-07 17:26:21 -04:00
Joey Hess
016b6a59e7
add fsck subcommand (stub)
2010-11-06 17:06:59 -04:00
Joey Hess
0eae5b806c
broke subcommands out into separate modules
2010-11-02 19:04:24 -04:00