| Commit message (Collapse) | Author | Age |
|
|
|
| |
config is valid.
|
| |
|
| |
|
|
|
|
| |
Closes: #680450
|
|
|
|
| |
faster than forking the more optimised external program.
|
|
|
|
|
|
|
|
| |
a dependency) to do the checksumming. This may be slower, but avoids portability problems.
Using Crypto's version of the hashes would be another option.
I need to benchmark it. The SHA2 library (which provides SHA1 also,
confusing name) may be the fastest option, but is not currently in Debian.
|
|
|
|
|
|
|
|
| |
This *almost* works.
Along the way, I noticed that the --uuid parameter was being accidentially
passed after the --, so that has never been actually used by
git-annex-shell to verify it's running in the expected repository. Oops. Fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to record a semi-useful filename associated with the key,
this required plumbing the filename all the way through to the remotes'
storeKey and retrieveKeyFile.
Note that there is potential for deadlock here, narrowly avoided.
Suppose the repos are A and B. A sends file foo to B, and at the same
time, B gets file foo from A. So, A locks its upload transfer info file,
and then locks B's download transfer info file. At the same time,
B is taking the two locks in the opposite order. This is only not a
deadlock because the lock code does not wait, and aborts. So one of A or
B's transfers will be aborted and the other transfer will continue.
Whew!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is already in progress by another process.
Note this is per-remote, so trying to get the same file from multiple
remotes can still let duplicate downloads run. (And uploading the same file
to multiple remotes is not duplicate at all of course.)
get, move, and copy are the only git-annex subcommands that transfer
files, but there's still git-annex-shell recvkey and sendkey to deal with too.
I considered modifying retrieveKeyFile or getViaTmp, but they are called
by other code that does not involve expensive file transfers (migrate)
or that does file transfers that should not be checked by this (fsck --from).
|
| |
|
|
|
|
| |
untested, but it compiles :)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Accept arbitrarily encoded repository filepaths etc when reading git config
output. This fixes support for remotes with unusual characters in their
names.
For example, a remote with a url of /tmp/çüş was previously
skipped, because the filename wasn't encoded right so it didn't think it
was available. And when setting the annex-uuid of a remote named "çüş",
it used to add it under a mis-encoded form of the remote's name. Both these
cases now work ok in my testing.
|
|
|
|
|
| |
Probably fixes bugs/git-annex:_Cannot_decode_byte___39____92__xfc__39__/
although I don't know how to reproduce that bug.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not available.
Prelude.undefined error message was introduced by
bb4f31a0ee496ffb83d31cc56f8827e47605d763.
It seems best to filter out local repositories that cannot be accessed
from the list of remotes, rather than keeping them in and making every
thing that uses the list have to deal with remotes that may have an unknown
location.
Besides fixing the error message, this also makes unavailable local
remotes' names not be shown in various messages, including in git annex
status output.
Also, move --to an unavailable local repository now avoids some ugly
errors like "changeWorkingDirectory: does not exist".
|
|
|
|
| |
disables the watch command.
|
| |
|
| |
|
| |
|
|
|
|
| |
not available on kfreebsd, and only used by watch
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Was decoding the git-cat-file of the symlink target as utf8, but that can't
do, unix filenames are from the 70's and need this shiny disco
fileSystemEncoding.
|
|/
|
|
|
| |
Kqueue code for dispatching events is not tested and probably doesn't
build.
|
|
|
|
|
|
| |
Could not reproduce the build failure I had seen related to this,
but the numbers were wrong with statfs64. Probably pulling from the wrong
place in the structure. statvfs seems to work..
|
| |
|
| |
|
|
|
|
|
| |
Check for it in configure; and add a --force option for people without it
who want to live dangerously.
|
|\ |
|
| | |
|
| |
| |
| |
| | |
#677576
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
debian/changelog
git-annex.cabal
|
| |
| |
| |
| | |
even when installing under $HOME. Thanks, Nathan Collins
|
| |
| |
| |
| |
| |
| | |
This reverts commit 129f6123fe933310829986fd5a99a9fd6911ca0f.
Saw hang during batch add with -threaded, so deferred for now.
|
| |
| |
| |
| | |
Sort of a work around for http://bugs.debian.org/677096
|
|\|
| |
| |
| |
| | |
Conflicts:
debian/changelog
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The commit thread now has access to a channel containing the times of
all uncommitted changes. This lets it be smart about detecting busy times
when a batch job is running (such as rm -rf, or untarring something, etc),
and avoid committing until it's done. While at the same time, instantly
committing one-off changes that the user is going to expect to see
immediately.
I had to use STM to implement the channel, because of
http://hackage.haskell.org/trac/ghc/ticket/4154
While this adds a dependency, I always wanted to use STM, so this actually
makes me happy. ;)
Also happy that shouldCommit is a pure function, so other commit smartness
strategies can easily be played with. Although the current one seems pretty
good.
There is one bug, for some reason it does double commits, every time.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
This ensures that all special remotes show up in git annex status.
Before, a special remote that was not manually described, and was not
a current git remote, did not show up there, although initremote did list
it.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
being added to the annex.
Anything that tries to open the file for write, or delete the file,
or replace it with something else, will not affect the add.
Only if a process has the file open for write before add starts
can it still change it while (or after) it's added to the annex.
(fsck will catch this later of course)
|
|\| |
|
| | |
|
| | |
|
|/ |
|
|
|
|
| |
default.
|
|
|
|
| |
unsupported backend.
|
|
|
|
|
|
| |
adds them
Use case for this was developed somewhere on the Transiberian Railroad.
|
|
|
|
|
|
|
|
| |
Resetting an unlocked file to the branch head failed if it had just been
added, not committed, and unlocked, since the branch didbn't have it.
The code was concerned about dropping any changes that might be staged in the
index, but I cannot see why.
|