Recent comments posted to this site:

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.

Comment by joey Fri Oct 31 20:31:39 2014

Is there an easy solution for the following? There are two kinds of "unused" I would like to treat differently:

  1. Kind "really unused": Was added once to the annex, but symlink was never committed
  2. 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.

Why Windows is restricted to direct mode? NTFS has symbolic links too. Is that fundamentally different from POSIX symlinks that it cannot be done?
Thanks Joey, I was able to get the file after this modification. I’ll make a pull request on Github.
Comment by hugo Mon Oct 6 16:45:03 2014

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.

Comment by http://joeyh.name/ Mon Oct 6 15:51:38 2014

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.

Comment by http://joeyh.name/ Mon Oct 6 15:23:59 2014

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

Comment by hugo Sun Oct 5 19:43:04 2014

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?

Comment by hugo Sun Oct 5 19:40:23 2014

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

Comments on this page are closed.