Recent comments posted to this site:
Is there an easy solution for the following? There are two kinds of "unused" I would like to treat differently:
- Kind "really unused": Was added once to the annex, but symlink was never committed
- Kind "only history": A commit contains a symlink to the data, but no active branch
I want to preserve "only history", and only drop "really unused". What is an elegant way to do this? Thanks for your suggestions.
Pieter, I suspect you didn't follow the part of the instructions where it says to run "./runshell" on the NAS. If you didn't do that, there will be no ~/.ssh/git-annex-shell script set up.
You have put git-annex-shell in your PATH somehow, but you probably did it by editing a bash dotfile. Those files are used for interactive login shells, but not when git-annex is sshing noninteractively into the NAS to run git-annex-shell.
Hugo, I didn't write this code, but it looks to me like you could work around the problem by changing line 207 of lib/CommonFunctions.py:
diff --git a/lib/CommonFunctions.py b/lib/CommonFunctions.py index 050b93e..083f5d6 100644 --- a/lib/CommonFunctions.py +++ b/lib/CommonFunctions.py @@ -204,7 +204,7 @@ def fetchPage(params={}): if get("progress"): data = False tdata = "" - totalsize = int(con.headers['content-length']) + totalsize = 0 chunksize = totalsize / 100 if chunksize < 4096: chunksize = 4096
Probably the API used to return a content-length header, and no longer does, or doesn't do so reliably. It does not seem to be used for anything too important -- this change will break git-annex's progress display a little bit, perhaps.
I am not able to get full syncing working. It says "syncing enabled (metadata only)". When I click on Actions -> Edit it says:
Just a git repository.
This repository is not currently set up as a git annex; only git metadata is synced with this repository.
If this repository's ssh server has git-annex installed, you can upgrade this repository to a full git annex, which will store the contents of your files, not only their metadata.
When I try to upgrade the repository it does not work. The log says:
sh: git-annex-shell: not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.1]
I'm using Version: 5.20140717 on the Linux Ubuntu 14.10.
Ssh'ing from Ubuntu to gituser@synology works fine and shows the git-annex-shell options
Any ideas?
The Google Drive interface tells me:
Size 29,776,826 bytes
I moved a big PDF to Google Drive (with shared encryption).
Now, when I try to get it again:
get Documents/Guyau - The Non-Religion of the Future, nonreligionoffut00guyarich.pdf (from googledrive...) (gpg)
Traceback (most recent call last):
File "/usr/bin/git-annex-remote-googledrive", line 411, in <module>
common.startRemote()
File "/usr/share/googledriveannex-git/lib/CommonFunctions.py", line 555, in startRemote
sys.modules["__main__"].transfer(line)
File "/usr/bin/git-annex-remote-googledrive", line 372, in transfer
if getFile(line[2], " ".join(line[3:]), folder):
File "/usr/bin/git-annex-remote-googledrive", line 257, in getFile
ret = common.fetchPage({"link": download_url, "headers": [("Authorization", "Bearer " + credentials.access_token)], "progress": "true"})
File "/usr/share/googledriveannex-git/lib/CommonFunctions.py", line 207, in fetchPage
totalsize = int(con.headers['content-length'])
File "/usr/lib/python2.7/rfc822.py", line 388, in __getitem__
return self.dict[name.lower()]
KeyError: 'content-length'
It works for smaller files. Is there a limit on the file size?
Sorry for the noise, I see that tags can be used for preferred content, excellent!
But it seems metadata is tied to a key, not to a specific file/path. If I have 10 different files all with the same content (for some reason, say a simple txt file, Gemspec, or something), and I want to tag one of them as important, it doesn't mean they all are :o
git-annex unused
looks at what data is used by git branches and tags, but not by other commits. It's a reasonable request and I have made a todo for it: find unused in any commit .. But I am unure if it can be implemented to run fast enough to be usable.