Merge branch 'master' of ssh://git-annex.branchable.com
This commit is contained in:
commit
80b7ac0789
12 changed files with 266 additions and 0 deletions
|
@ -0,0 +1,12 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://id.koumbit.net/anarcat"
|
||||
ip="2001:1928:1:9::1"
|
||||
subject="sources"
|
||||
date="2013-11-21T18:41:12Z"
|
||||
content="""
|
||||
I tried to find a canonical source for why (or if?) git ignores any \".git\" directory, and it turns out it also ignores .git *files*, according to [this stackoverflow thread](http://stackoverflow.com/questions/6839781/what-happens-when-you-run-git-add-git-in-a-git-repository). It's hardcoded in the source code and \"will likely not change\".
|
||||
|
||||
I guess this should therefore be taken upstream, but I am not sure how this could justified there.
|
||||
|
||||
I do think git-annex should support that. It's turning more and more as a \"generic backup solution\" or \"i want my files in the cloud\" kind of solution, which is awesome, but small things like this are making it harder to use... --[[anarcat]]
|
||||
"""]]
|
|
@ -0,0 +1,27 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://www.google.com/accounts/o8/id?id=AItOawkkyBDsfOB7JZvPZ4a8F3rwv0wk6Nb9n48"
|
||||
nickname="Abdó"
|
||||
subject="comment 6"
|
||||
date="2013-11-21T20:04:22Z"
|
||||
content="""
|
||||
After I wrote my last post in this thread I did write a patch for git doing two things:
|
||||
|
||||
* make git ignore .git only at the root of the working tree, but not '.git' files or directories nested deeper into the working tree.
|
||||
* add config option to prevent git from converting directories containing .git into gitlinks. It turns out that git already has an internal setting for this, it only needed to be exposed in the config files!
|
||||
|
||||
It kind of worked, but I've never used nor completed this, though (if I recall correctly, something had to be done regarding the default gitingores, which contains .git). I don't think upstream would accept these changes, though. It is a potentially risky change that does not gives them any benefit. Plus commiting a git repo inside an other is kind of crazy. I'm not convinced this is a good solution anymore.
|
||||
|
||||
Being able to put a git repo inside an assistant-controled directory would be nice, though. Additionally, letting the outermost git repo recognize the internal git repo as a git repo, instead of moving files blindly, would also be nice, and probably more reasonable. And that leads to submodules...
|
||||
|
||||
My particular problem is: I want to syncing a directory with lots of little git repos across several machines, without having to configure remotes for every single one of them (so no mr) and having someone take care of the files which are ignored by the little git repos, possibly as annexed files. Currently I just sync that folder containing the little git repos with unison.
|
||||
|
||||
Now, instead of commiting git repos inside git repos, I'm more inclined to a potential solution using git-annex + submodules. Ideally I'd like something like this:
|
||||
|
||||
1. A git-annex repo at ~/work
|
||||
2. All my little git repos inside ~/work are automatically recognized as submodules by git-annex
|
||||
3. The outermost git-annex takes care of the .gitignored files for the inner git repos
|
||||
4. git pull/push --recursive on the outermost annex repo pulls/pushes submodules (I think [something like this](https://github.com/jlehmann/git-submod-enhancements/wiki/Recursive-submodule-checkout) is written by Jens Lehmann)
|
||||
5. The urls in .gitmodules are relative paths from the outermost annex working tree. Then a git fetch --recursive from the outermost annex can use an outermost remote + the submodule relative path. No need to manually configure remotes for every machine on every submodule!
|
||||
|
||||
The problem with this approach, is that 2,4,5 are science-fiction for now, and probably 3 too. Realizing this would imply a lot of work, and commiting a lot of submodule stuff to upstream git. But probably stuff that makes sense and they would accept. Anyway, I'd like to know what Joey thinks about all this...
|
||||
"""]]
|
|
@ -0,0 +1,33 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://www.google.com/accounts/o8/id?id=AItOawnh6wz0pMA3NLPFg2j_I3S5JeinaOVqnng"
|
||||
nickname="Felix"
|
||||
subject="Number of commits"
|
||||
date="2013-11-21T20:26:46Z"
|
||||
content="""
|
||||
I have no idea where this large number of commits come from, but maybe the sheer number of files explains it:
|
||||
|
||||
Files appearing in the wrong place (probably due to me starting the assistant in a subdirectory of the repo):
|
||||
|
||||
$ git log --stat | grep \"5d/20.*+$\" |wc -l
|
||||
1148
|
||||
|
||||
Me wondering where they come from and deleting them manually step by step when I found them:
|
||||
|
||||
$ git log --stat | grep \"5d/20.*-$\" |wc -l
|
||||
1095
|
||||
|
||||
git-annex removing the original files that have been mirrored in the wrong place (and maybe a few more as I was working on stuff there as well):
|
||||
|
||||
$ git log --stat | grep \"^ 20.*-$\" | wc -l
|
||||
1152
|
||||
|
||||
Maybe this explains the large number (approx. 500) of commits?
|
||||
|
||||
---
|
||||
|
||||
The missing 200 files have not been in a different repo, so apart from 3 that were not available they have been restored from the backup.
|
||||
|
||||
---
|
||||
|
||||
As my setup needs some changes anyway I'm going to start from scratch.
|
||||
"""]]
|
17
doc/bugs/Not_working_on_Android-x86.mdwn
Normal file
17
doc/bugs/Not_working_on_Android-x86.mdwn
Normal file
|
@ -0,0 +1,17 @@
|
|||
### Please describe the problem.
|
||||
|
||||
git-annex doesn't start on [Android-x86](http://www.android-x86.org) in VirtualBox (version 4.1.18-dfsg-2+deb7u1).
|
||||
|
||||
On Android 4.2.2 (android-x86-4.2-20130228.iso) it starts the terminal which prints nothing but `[Terminal session finished]`.
|
||||
On Android 4.3 (android-x86-4.3-20130725.iso) it starts the terminal and prints:
|
||||
|
||||
In mgmain JNI_OnLoad
|
||||
|
||||
[Terminal session finished]
|
||||
|
||||
The browser/webapp is never started.
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
|
||||
Version 1.0.52 for Android. I made sure to install the correct APK files for each version of Android.
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://www.google.com/accounts/o8/id?id=AItOawmBUR4O9mofxVbpb8JV9mEbVfIYv670uJo"
|
||||
nickname="Justin"
|
||||
subject="comment 1"
|
||||
date="2013-11-21T04:09:15Z"
|
||||
content="""
|
||||
Is
|
||||
|
||||
git annex copy --not --in mys3 --to mys3 .
|
||||
|
||||
any faster?
|
||||
"""]]
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://me.yahoo.com/a/FHnTlSBo1eCGJRwueeKeB6.RCaPbGMPr5jxx8A--#ce0d8"
|
||||
nickname="Hamza"
|
||||
subject="comment 2"
|
||||
date="2013-11-21T17:47:57Z"
|
||||
content="""
|
||||
No difference. Both take roughly the same time but I did time a couple of runs with both commands they usually take 3 to 5 minutes to complete. Maybe git did something behind the scenes like gc? But still slower than it used to be. My other repo (one with 42k files) still takes a 2 hours.
|
||||
"""]]
|
3
doc/forum/unsynced_folder.mdwn
Normal file
3
doc/forum/unsynced_folder.mdwn
Normal file
|
@ -0,0 +1,3 @@
|
|||
If I have an archive with a lot of big files, is it possible to get one of them without using the command line, and without it popping up on other clients of that repository?
|
||||
Is it possible to have a folder that will not be synced with other clients but will still download the file when i copy it from archive?
|
||||
.gitignore probably wont work because that will not get the file from archive.
|
|
@ -0,0 +1,39 @@
|
|||
[[!comment format=mdwn
|
||||
username="robohack"
|
||||
ip="24.67.98.78"
|
||||
subject="cabal install failing due to problems building pcre-light-0.4"
|
||||
date="2013-11-21T20:17:10Z"
|
||||
content="""
|
||||
After a fresh install of Haskell, and following the instructions above, I end up with the following rather bizarre and unexpected problem:
|
||||
|
||||
$ cabal install git-annex --bindir=$HOME/bin -f\"-assistant -webapp -webdav -pairing -xmpp -dns\"
|
||||
Resolving dependencies...
|
||||
Configuring pcre-light-0.4...
|
||||
Building pcre-light-0.4...
|
||||
Preprocessing library pcre-light-0.4...
|
||||
Base.hsc:103:18: error: pcre.h: No such file or directory
|
||||
Base.hsc: In function ‘main’:
|
||||
Base.hsc:402: error: ‘PCRE_ANCHORED’ undeclared (first use in this function)
|
||||
Base.hsc:402: error: (Each undeclared identifier is reported only once
|
||||
Base.hsc:402: error: for each function it appears in.)
|
||||
Base.hsc:405: error: ‘PCRE_AUTO_CALLOUT’ undeclared (first use in this function)
|
||||
|
||||
(followed by an error for every other macro that was expected to be defined in the header...)
|
||||
|
||||
compiling dist/build/Text/Regex/PCRE/Light/Base_hsc_make.c failed (exit code 1)
|
||||
command was: /usr/bin/gcc -c dist/build/Text/Regex/PCRE/Light/Base_hsc_make.c -o dist/build/Text/Regex/PCRE/Light/Base_hsc_make.o -m64 -fno-stack-protector -m64 -fno-stack-protector -m64 -D__GLASGOW_HASKELL__=700 -Ddarwin_BUILD_OS -Ddarwin_HOST_OS -Dx86_64_BUILD_ARCH -Dx86_64_HOST_ARCH -I/sw/lib/ghc-7.0.4/bytestring-0.9.1.10/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/sw/lib/ghc-7.0.4/base-4.3.1.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/sw/lib/ghc-7.0.4/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/sw/lib/ghc-7.0.4/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/sw/lib/ghc-7.0.4/include/
|
||||
Failed to install pcre-light-0.4
|
||||
cabal: Error: some packages failed to install:
|
||||
git-annex-3.20120230 depends on pcre-light-0.4 which failed to install.
|
||||
pcre-light-0.4 failed during the building phase. The exception was:
|
||||
ExitFailure 1
|
||||
|
||||
This is a somewhat older Mac OS X 10.6.8 system.
|
||||
|
||||
I do have PCRE already installed via Fink, and pcre.h is in /sw/include. I see other -I/sw/... things in the compile command above, but obviously /sw/include is not one of them.
|
||||
|
||||
Any clues for me?
|
||||
|
||||
(Why the heck does git-annex need pcre in particular anyway??? I saw another regex library get installed earlier somewhere in this (massive) process.)
|
||||
|
||||
"""]]
|
|
@ -0,0 +1,35 @@
|
|||
[[!comment format=mdwn
|
||||
username="robohack"
|
||||
ip="24.67.98.78"
|
||||
subject="hmmm... ok, the PCRE problem was odd, but now this:"
|
||||
date="2013-11-21T20:30:54Z"
|
||||
content="""
|
||||
The PCRE problem is solved trivially in my case with a couple more cabal install options, though the need for these seems oddly dissatisfying given the reams of other stuff that was successfully built and installed without these options.
|
||||
|
||||
Now however I seem to have encountered a deeper problem:
|
||||
|
||||
$ cabal install git-annex --bindir=$HOME/bin --extra-include-dirs=/sw/include --extra-lib-dirs=/sw/lib
|
||||
Resolving dependencies...
|
||||
[1 of 1] Compiling Main ( /var/folders/7h/7hWHR5m8HPKOnUEvQU7HU++++TI/-Tmp-/git-annex-3.20120230-84797/git-annex-3.20120230/Setup.hs, /var/folders/7h/7hWHR5m8HPKOnUEvQU7HU++++TI/-Tmp-/git-annex-3.20120230-84797/git-annex-3.20120230/dist/setup/Main.o )
|
||||
Linking /var/folders/7h/7hWHR5m8HPKOnUEvQU7HU++++TI/-Tmp-/git-annex-3.20120230-84797/git-annex-3.20120230/dist/setup/setup ...
|
||||
hsc2hs Utility/StatFS.hsc
|
||||
perl -i -pe 's/^{-# INCLUDE.*//' Utility/StatFS.hs
|
||||
ghc -O2 -Wall -ignore-package monads-fd --make configure
|
||||
|
||||
Utility/StatFS.hsc:54:8:
|
||||
Could not find module `GHC.Foreign':
|
||||
Use -v to see a list of the files searched for.
|
||||
make: *** [Build/SysConfig.hs] Error 1
|
||||
Configuring git-annex-3.20120230...
|
||||
Building git-annex-3.20120230...
|
||||
Preprocessing executable 'git-annex' for git-annex-3.20120230...
|
||||
|
||||
Git/Version.hs:11:18:
|
||||
Could not find module `Build.SysConfig':
|
||||
Use -v to see a list of the files searched for.
|
||||
Failed to install git-annex-3.20120230
|
||||
cabal: Error: some packages failed to install:
|
||||
git-annex-3.20120230 failed during the building phase. The exception was:
|
||||
ExitFailure 1
|
||||
|
||||
"""]]
|
|
@ -0,0 +1,22 @@
|
|||
[[!comment format=mdwn
|
||||
username="robohack"
|
||||
ip="24.67.98.78"
|
||||
subject="a different error trying to build from the git repo...."
|
||||
date="2013-11-21T21:14:54Z"
|
||||
content="""
|
||||
I'm using the ghc7.0 branch because Fink's GHC is still at 7.0.4....
|
||||
|
||||
$ cabal build
|
||||
Building git-annex-3.20120523...
|
||||
Preprocessing executable 'git-annex' for git-annex-3.20120523...
|
||||
[ 78 of 163] Compiling Utility.Url ( Utility/Url.hs, dist/build/git-annex/git-annex-tmp/Utility/Url.o )
|
||||
|
||||
Utility/Url.hs:111:88:
|
||||
Couldn't match expected type `Maybe URI' with actual type `URI'
|
||||
In the second argument of `fromMaybe', namely
|
||||
`(newURI `relativeTo` u)'
|
||||
In the expression: fromMaybe newURI (newURI `relativeTo` u)
|
||||
In an equation for `newURI_abs':
|
||||
newURI_abs = fromMaybe newURI (newURI `relativeTo` u)
|
||||
|
||||
"""]]
|
|
@ -0,0 +1,23 @@
|
|||
[[!comment format=mdwn
|
||||
username="https://www.google.com/accounts/o8/id?id=AItOawlu-fdXIt_RF9ggvg4zP0yBbtjWQwHAMS4"
|
||||
nickname="Jörn"
|
||||
subject="Same problem, no XMPP showing up in daemon.log"
|
||||
date="2013-11-21T21:13:16Z"
|
||||
content="""
|
||||
I have the same setup like @RaspberryPie, except that my server is not running on the Pi but on Debian7-amd64. On my client (OSX, self-compiled using cabal) I can see XMPP log entries like @RaspberryPi, however, on the Debian7 machine (also self-compiled) I do not see any XMPP entry in the daemon.log. Setup regarding .git/annex/creds/xmpp and the special xmpp remote is correct (checked a thousand times).
|
||||
|
||||
Do you have any idea what could be wrong, Joey? Thanks a lot.
|
||||
|
||||
Output of git annex version:
|
||||
|
||||
git-annex version: 5.20131120
|
||||
build flags: Assistant Pairing Testsuite S3 WebDAV Inotify DBus XMPP DNS Feeds Quvi CryptoHash
|
||||
key/value backends: SHA256E SHA1E SHA512E SHA224E SHA384E SKEIN256E SKEIN512E SHA256 SHA1 SHA512 SHA224 SHA384 SKEIN256 SKEIN512 WORM URL
|
||||
remote types: git gcrypt S3 bup directory rsync web webdav glacier hook
|
||||
local repository version: 4
|
||||
default repository version: 3
|
||||
supported repository versions: 3 5
|
||||
upgrade supported from repository versions: 0 1 2 4
|
||||
|
||||
Jörn
|
||||
"""]]
|
35
doc/tips/Crude_Windows_Sync.mdwn
Normal file
35
doc/tips/Crude_Windows_Sync.mdwn
Normal file
|
@ -0,0 +1,35 @@
|
|||
Here's a workaround to start syncing folders on Windows right now. It's a bit command line heavy, so you might need to set this up for your users. But I would much rather do this than use some other syncing solution and then have to migrate.
|
||||
|
||||
(1) Create a remote server git annex repository with the assistant on Linux or Mac.
|
||||
|
||||
(2) [Install git](http://git-scm.com/) on the Windows machine.
|
||||
|
||||
(3) [Install git-annex for Windows](http://git-annex.branchable.com/install/Windows/) on the Windows machine. Don't forget to run the installer as administrator.
|
||||
|
||||
(4) Run _Git Bash_ from the system menu, and run these commands to clone your repository.
|
||||
|
||||
ssh-keygen
|
||||
cat .ssh/id_rsa.pub | ssh username@my-server.com "cat >> ~/.ssh/authorized_keys"
|
||||
git clone username@my-server.com:/path/to/annex
|
||||
cd annex
|
||||
git annex init
|
||||
|
||||
(5) Create a script that will trigger a full sync
|
||||
|
||||
echo '
|
||||
#!/bin/bash
|
||||
git annex sync
|
||||
git annex get *
|
||||
git annex add .
|
||||
git annex sync
|
||||
git annex copy * --to origin
|
||||
' > sync.sh
|
||||
chmod +x sync.sh
|
||||
./sync.sh
|
||||
|
||||
(6) Copy the "Git Bash" shortcut from your windows menu to your desktop, and change the link target to:
|
||||
|
||||
C:\Program Files\Git\bin\sh.exe" --login -i "annex/sync.sh"
|
||||
|
||||
Now ask your users to run this shortcut before and after they change files. You can also put it into the "autostart" folder to sync at boot.
|
||||
|
Loading…
Reference in a new issue