From 2581ac61e032eb75b9a332ffea6fff16bf1833aa Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 12:17:12 -0400 Subject: remove libSystem.b from OSX build Without the frameworks, but with this library, I get: dyld: Symbol not found: __vproc_transactions_enable Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation Expected in: /Volumes/git-annex/git-annex.app/Contents/MacOS/./C in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation Without this library, things seem to work again w/o frameworks. --- Build/OSXMkLibs.hs | 1 + 1 file changed, 1 insertion(+) diff --git a/Build/OSXMkLibs.hs b/Build/OSXMkLibs.hs index 6e0670d79..b0f87d153 100644 --- a/Build/OSXMkLibs.hs +++ b/Build/OSXMkLibs.hs @@ -64,6 +64,7 @@ otool appbase libmap = do where want s = not ("@executable_path" `isInfixOf` s) && not (".framework" `isInfixOf` s) + && not ("libSystem.B" `isInfixOf` s) process c [] m = return (nub $ concat c, m) process c (file:rest) m = do _ <- boolSystem "chmod" [Param "755", File file] -- cgit v1.2.3 From 38ae733f4f525bb5cfaddc04c9b250551dca93e5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 12:27:32 -0400 Subject: furnish git with an (empty) template directory in standalone builds This will stop git-init complaining about missing template directory. --- Makefile | 2 ++ standalone/linux/runshell | 7 ++++++- standalone/osx/git-annex.app/Contents/MacOS/runshell | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 4196a1167..e3ccbd548 100644 --- a/Makefile +++ b/Makefile @@ -173,6 +173,7 @@ linuxstandalone: install -d "$(LINUXSTANDALONE_DEST)/git-core" (cd "$(shell git --exec-path)" && tar c .) | (cd "$(LINUXSTANDALONE_DEST)"/git-core && tar x) + install -d "$(LINUXSTANDALONE_DEST)/templates" touch "$(LINUXSTANDALONE_DEST)/libdirs.tmp" for lib in $$(ldd "$(LINUXSTANDALONE_DEST)"/bin/* $$(find "$(LINUXSTANDALONE_DEST)"/git-core/ -type f) | grep -v -f standalone/linux/glibc-libs | grep -v "not a dynamic executable" | egrep '^ ' | sed 's/^\t//' | sed 's/.*=> //' | cut -d ' ' -f 1 | sort | uniq); do \ @@ -217,6 +218,7 @@ osxapp: done (cd "$(shell git --exec-path)" && tar c .) | (cd "$(OSXAPP_BASE)" && tar x) + install -d "$(LINUXSTANDALONE_DEST)/templates" runghc Build/OSXMkLibs.hs $(OSXAPP_BASE) rm -f tmp/git-annex.dmg diff --git a/standalone/linux/runshell b/standalone/linux/runshell index e3d75d7a0..a1c93792d 100755 --- a/standalone/linux/runshell +++ b/standalone/linux/runshell @@ -58,8 +58,13 @@ export ORIG_GIT_EXEC_PATH GIT_EXEC_PATH=$base/git-core export GIT_EXEC_PATH +ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR" +export ORIG_GIT_TEMPLATE_DIR +GIT_TEMPLATE_DIR="$base/templates" +export GIT_TEMPLATE_DIR + # Indicate which variables were exported above. -GIT_ANNEX_STANDLONE_ENV="PATH LD_LIBRARY_PATH GIT_EXEC_PATH" +GIT_ANNEX_STANDLONE_ENV="PATH LD_LIBRARY_PATH GIT_EXEC_PATH GIT_TEMPLATE_DIR" export GIT_ANNEX_STANDLONE_ENV if [ "$1" ]; then diff --git a/standalone/osx/git-annex.app/Contents/MacOS/runshell b/standalone/osx/git-annex.app/Contents/MacOS/runshell index 40c1be615..bdeee6d97 100755 --- a/standalone/osx/git-annex.app/Contents/MacOS/runshell +++ b/standalone/osx/git-annex.app/Contents/MacOS/runshell @@ -51,8 +51,13 @@ export ORIG_GIT_EXEC_PATH GIT_EXEC_PATH=$base export GIT_EXEC_PATH +ORIG_GIT_TEMPLATE_DIR="$GIT_TEMPLATE_DIR" +export ORIG_GIT_TEMPLATE_DIR +GIT_TEMPLATE_DIR="$base/templates" +export GIT_TEMPLATE_DIR + # Indicate which variables were exported above. -GIT_ANNEX_STANDLONE_ENV="PATH GIT_EXEC_PATH" +GIT_ANNEX_STANDLONE_ENV="PATH GIT_EXEC_PATH GIT_TEMPLATE_DIR" export GIT_ANNEX_STANDLONE_ENV if [ "$1" ]; then -- cgit v1.2.3 From 150408081cc24a8575bc50be8f995d690cab3ae8 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 12:34:39 -0400 Subject: todo: support pairing with multiple distinct repos --- doc/design/assistant/xmpp.mdwn | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/design/assistant/xmpp.mdwn b/doc/design/assistant/xmpp.mdwn index 001b52981..c6d91c5ab 100644 --- a/doc/design/assistant/xmpp.mdwn +++ b/doc/design/assistant/xmpp.mdwn @@ -11,6 +11,10 @@ who share a repository, that is stored in the [[cloud]]. See * Assistant.Sync.manualPull doesn't handle XMPP remotes yet. This is needed to handle getting back in sync after reconnection. +* Support use of a single XMPP account with several separate git-annex repos. + This probably works for the simple push notification use of XMPP. But + XMPP pairing and the pushes over XMPP assume that anyone you're paired with + is intending to sync to your repository. ## design goals -- cgit v1.2.3 From 08f3f54f5ab7ab60966e79bf1572c2fc604b4922 Mon Sep 17 00:00:00 2001 From: "http://christian.amsuess.com/chrysn" Date: Thu, 13 Dec 2012 16:47:52 +0000 Subject: no annex-rsync-options = -e 'ssh -p 2234' --- doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn diff --git a/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn b/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn new file mode 100644 index 000000000..c8eeb7160 --- /dev/null +++ b/doc/bugs/annex-rsync-options_shell-split_carelessly.mdwn @@ -0,0 +1,16 @@ +with rsync, it is sometimes the case that one needs to specify ssh options -- typical examples from the rsync man page are `rsync -e 'ssh -p 2234'`. as git-annex does the shell splitting of the arguments in `annex-rsync-options` (see [[special remotes/rsync]]) itself by looking for whitespace, these options can't be passed directly. (`annex-rsync-options = -e 'ssh -p 2234'` gets split to `["rsync", "-e", "'ssh", "-p", "2234'"]` instead of `["rsync", "-e", "ssh -p 2234"]`). + +git-annex should respect shell splitting rules when looking at annex-rsync-options. (i suppose there is a haskell library or module for that; in python, we have the `shlex` module for that). + +## workaround + +put this in .git/ssh and mark it as executable: + + #!/bin/sh + exec ssh -p 2234 $@ + +put this in your git annex config in the particular remote's section: + + annex-rsync-options = -e /local/path/to/your/repo/.git/ssh + +(typical bug report information: observed with git-annex 3.20121127 on debian) -- cgit v1.2.3 From 5235c8db3f0b14887d89f55ffd595b4f67c6e889 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 13 Dec 2012 17:03:08 +0000 Subject: Added a comment --- ...ent_1_2636e0d224317f2e6db94658d8a094c4._comment | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 doc/bugs/annex-rsync-options_shell-split_carelessly/comment_1_2636e0d224317f2e6db94658d8a094c4._comment diff --git a/doc/bugs/annex-rsync-options_shell-split_carelessly/comment_1_2636e0d224317f2e6db94658d8a094c4._comment b/doc/bugs/annex-rsync-options_shell-split_carelessly/comment_1_2636e0d224317f2e6db94658d8a094c4._comment new file mode 100644 index 000000000..42b92ce28 --- /dev/null +++ b/doc/bugs/annex-rsync-options_shell-split_carelessly/comment_1_2636e0d224317f2e6db94658d8a094c4._comment @@ -0,0 +1,23 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 1" + date="2012-12-13T17:03:08Z" + content=""" +Due to the way git-annex runs rsync, which involves a specific -e parameter it constructs that, you cannot pass -e in annex-rsync-options anyway; or if you do you'll bypass use of git-annex-shell, which is not desirable. I have not checked which, but would not recommend use of it. + +There is no need for ugly workarounds. Just use ~/.ssh/config to configure the hostname to use the nonstandard port it needs. For example: + +
+Host example.com
+Port 2234
+
+ +Or, to make a separate example.com-2234 host that can be used to use the nonstandard port: + +
+Host example.com-2234
+Hostname example.com
+Port 2234
+
+"""]] -- cgit v1.2.3 From 7c0749bc0abd7bfb58a9fda16910b4cdd4bc693c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 13:29:38 -0400 Subject: respond --- doc/bugs/git-annex_fix_not_noticing_file_renames.mdwn | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/bugs/git-annex_fix_not_noticing_file_renames.mdwn b/doc/bugs/git-annex_fix_not_noticing_file_renames.mdwn index 4a7a965d1..a68533980 100644 --- a/doc/bugs/git-annex_fix_not_noticing_file_renames.mdwn +++ b/doc/bugs/git-annex_fix_not_noticing_file_renames.mdwn @@ -31,3 +31,6 @@ Please provide any additional information below. git annex assistant is not noticing file renames either. +> git-annex commands (other than `git annex add`) only operate on files +> checked into git, which `directory/file1` is not, since you did not use +> `git mv`. Once you `git add` the file, it'll work. [[done]] --[[Joey]] -- cgit v1.2.3 From e702d4d3eb24edddbb631b7024ec2632b2c8eb8d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 15:48:32 -0400 Subject: typo --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e3ccbd548..90d44af54 100644 --- a/Makefile +++ b/Makefile @@ -218,7 +218,7 @@ osxapp: done (cd "$(shell git --exec-path)" && tar c .) | (cd "$(OSXAPP_BASE)" && tar x) - install -d "$(LINUXSTANDALONE_DEST)/templates" + install -d "$(OSXAPP_BASE)/templates" runghc Build/OSXMkLibs.hs $(OSXAPP_BASE) rm -f tmp/git-annex.dmg -- cgit v1.2.3 From 7e74a9da9ed7972a8de1f94b5feaa7c8941295be Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 16:09:25 -0400 Subject: update --- doc/design/assistant/desymlink.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/design/assistant/desymlink.mdwn b/doc/design/assistant/desymlink.mdwn index 2f49c8304..457d7268d 100644 --- a/doc/design/assistant/desymlink.mdwn +++ b/doc/design/assistant/desymlink.mdwn @@ -61,6 +61,7 @@ is converted to a real file when it becomes present. can map to multiple files. And that when a file is deleted or moved, the mapping needs to be updated. * May need a reverse mapping, from files in the tree to keys? TBD + (Currently, getting by looking up symlinks using `git cat-file`) * The existing watch code detects when a file gets closed, and in this mode, it could be a new file, or a modified file, or an unchanged file. For a modified file, can compare mtime, size, etc, to see if it needs -- cgit v1.2.3 From 5d4c8d8cb43dbc5860bb858635a2e96cf2dead2e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Dec 2012 16:09:47 -0400 Subject: blog for the day --- .../blog/day_151__direct_mode_toggle.mdwn | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 doc/design/assistant/blog/day_151__direct_mode_toggle.mdwn diff --git a/doc/design/assistant/blog/day_151__direct_mode_toggle.mdwn b/doc/design/assistant/blog/day_151__direct_mode_toggle.mdwn new file mode 100644 index 000000000..c0b3f3245 --- /dev/null +++ b/doc/design/assistant/blog/day_151__direct_mode_toggle.mdwn @@ -0,0 +1,59 @@ +Built `git annex direct` and `git annex indirect` to toggle back and forth +between direct mode. Made `git annex status` show if the repository is in +direct mode. Now *only* merging is needed for direct mode to be basically +usable. + +I can do a little demo now. Pay attention to the "@" ls shows at the end +of symlinks. + + joey@gnu:~/tmp/bench/rdirect>ls + myfile@ otherfile@ + joey@gnu:~/tmp/bench/rdirect>git annex find + otherfile + # So, two files, only one present in this repo. + + joey@gnu:~/tmp/bench/rdirect>git annex direct + commit + # On branch master + # Your branch is ahead of 'origin/master' by 7 commits. + # + nothing to commit (working directory clean) + ok + direct myfile ok + direct otherfile ok + direct ok + + joey@gnu:~/tmp/bench/rdirect>ls + myfile@ otherfile + # myfile is still a broken symlink because we don't have its content + joey@gnu:~/tmp/bench/rdirect>git annex get myfile + get myfile (from origin...) ok + (Recording state in git...) + joey@gnu:~/tmp/bench/rdirect>ls + myfile otherfile + + joey@gnu:~/tmp/bench/rdirect>echo "look mom, no symlinks" >> myfile + joey@gnu:~/tmp/bench/rdirect>git annex sync + add myfile (checksum...) ok + commit + (Recording state in git...) + [master 0e8de9b] git-annex automatic sync + ... + ok + + joey@gnu:~/tmp/bench/rdirect>git annex indirect + commit ok + indirect myfile ok + indirect otherfile ok + indirect ok + joey@gnu:~/tmp/bench/rdirect>ls + myfile@ otherfile@ + +I'd like `git annex direct` to set the repository to untrusted, but +I didn't do it. Partly because having `git annex indirect` set it back to +semitrusted seems possibly wrong -- the user might not trust a repo even in +indirect mode. Or might fully trust it. The docs will encourage users to +set direct mode repos to untrusted -- in direct mode you're operating +without large swathes of git-annex's carefully constructed safety net. +(When the assistant later uses direct mode, it'll untrust the repository +automatically.) -- cgit v1.2.3 From 3e73523dc824f6843749a7b04155d1c6eb6d2918 Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Thu, 13 Dec 2012 20:14:37 +0000 Subject: Added a comment --- ...ent_1_4edd95200d59ec5a5426167b8da8e3f9._comment | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 doc/bugs/git-annex_fix_not_noticing_file_renames/comment_1_4edd95200d59ec5a5426167b8da8e3f9._comment diff --git a/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_1_4edd95200d59ec5a5426167b8da8e3f9._comment b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_1_4edd95200d59ec5a5426167b8da8e3f9._comment new file mode 100644 index 000000000..589dfbf06 --- /dev/null +++ b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_1_4edd95200d59ec5a5426167b8da8e3f9._comment @@ -0,0 +1,24 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 1" + date="2012-12-13T20:14:37Z" + content=""" +Thanks for the response! It's good to know how it works right now. + +The reason I was expecting it to work on the files even if I moved them without git rename, is this: + +Imaginary use case: + +I am using git annex assistant, and not using the command line at all. Maybe I don't know anything about git. I am on a machine in the \"client\" group, so it drops content in \"archive\" subdirectories after storing it safely in a repository in the \"backup\" group. + +To add content to git annex, I drag and drop it into the git annex directory. Assistant notices, and it gets added to the annex (it is now a symlink). Yay! + +To archive content, I drag and drop the file (its symlink actually) from the git annex directory to an annex/archive directory, assistant notices, and it gets moved off to backup directories, and this symlink becomes dead. This doesn't work because git annex assistant doesn't notice renames. + +To retrieve content from an archive, I drag and drop the dead link in the archive directory to a parent directory, and git annex notices and grabs the content from a backup somewhere. This doesn't work, because git annex assistant doesn't notice renames. + +These kinds of operations are necessary if I'm going to archive and unarchive files, or otherwise move and manage them, while the assistant is running, without using git from the command line. + + +"""]] -- cgit v1.2.3 From 59033399a40b85be076296c121076d39e819b94c Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 13 Dec 2012 20:24:33 +0000 Subject: Added a comment --- .../comment_2_a9a44debefb3bdd4b8ed2d1cf53f2338._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/git-annex_fix_not_noticing_file_renames/comment_2_a9a44debefb3bdd4b8ed2d1cf53f2338._comment diff --git a/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_2_a9a44debefb3bdd4b8ed2d1cf53f2338._comment b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_2_a9a44debefb3bdd4b8ed2d1cf53f2338._comment new file mode 100644 index 000000000..33f05eac7 --- /dev/null +++ b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_2_a9a44debefb3bdd4b8ed2d1cf53f2338._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 2" + date="2012-12-13T20:24:32Z" + content=""" +The assistant does notice renames, and also automatically fixes links. +"""]] -- cgit v1.2.3 From 08b09f97bb7bf4a9c2dcfa334dba516f70a400a2 Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Thu, 13 Dec 2012 20:39:58 +0000 Subject: Added a comment --- .../comment_3_0efb11f35b872b75a3fbc4ebb71ac827._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/git-annex_fix_not_noticing_file_renames/comment_3_0efb11f35b872b75a3fbc4ebb71ac827._comment diff --git a/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_3_0efb11f35b872b75a3fbc4ebb71ac827._comment b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_3_0efb11f35b872b75a3fbc4ebb71ac827._comment new file mode 100644 index 000000000..75c02dda1 --- /dev/null +++ b/doc/bugs/git-annex_fix_not_noticing_file_renames/comment_3_0efb11f35b872b75a3fbc4ebb71ac827._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 3" + date="2012-12-13T20:39:57Z" + content=""" +The assistant doesn't seem to be noticing renames or fixing files anymore, for me; that was what got me started on this bug report, though it sounds like I took it in an irrelevant direction by focusing on the command line and \"git annex fix.\" + +I'll double check, and submit a new bug report if I can confirm that assistant isn't doing what it should. +"""]] -- cgit v1.2.3 From caa8b89140d6ca23d03f62727d1cf683680f2d7b Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Thu, 13 Dec 2012 20:49:26 +0000 Subject: --- ...ticing_file_renames__44___not_fixing_files.mdwn | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn diff --git a/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn new file mode 100644 index 000000000..4c92623f8 --- /dev/null +++ b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn @@ -0,0 +1,66 @@ +What steps will reproduce the problem? + +In one terminal, I created a new annex and started the assistant watching it. + +In another, I added a file file1; assistant noticed it and added it to the annex. + +I moved file1 to a directory directory1; the link broke and assistant did not fix it. + +I created a file called file2 inside directory 2; assistant noticed it and added it to the annex. + +I moved file2 back up to the annex root directory; the link broke and assistant did not fix it. + +I created a file file3 in the annex root directory; assistant noticed it and added it to the annex. + +Here is the content of the first terminal, where I created the annex and ran assistant: + + + ~$ mkdir testannex + ~$ cd testannex/ + testannex$ git init . + Initialized empty Git repository in /Users/ed/testannex/.git/ + testannex$ git annex init "test annex" + init test annex ok + (Recording state in git...) + testannex$ git annex assistant --foreground + assistant . (scanning...) (started...) add file1 (checksum...) ok + (Recording state in git...) + (Recording state in git...) + add directory1/file2 (checksum...) ok + (Recording state in git...) + (Recording state in git...) + add file3 (checksum...) + +here is the content of the second terminal, where I created and moved files: + + ~$ cd testannex + testannex$ echo "file1 content" > file1 + testannex$ mkdir directory1 + testannex$ ls -l file1 + lrwxr-xr-x 1 ed staff 180 Dec 13 15:40 file1 -> .git/annex/objects/FX/51/SHA256E-s14--edac79763e630b1b77aefb6c284bcb0362dea71c0548be0e793ffa8fd5907b80/SHA256E-s14--edac79763e630b1b77aefb6c284bcb0362dea71c0548be0e793ffa8fd5907b80 + testannex$ mv file1 directory1/ + testannex$ cd directory1/ + directory1$ cat file1 + cat: file1: No such file or directory + directory1$ echo "file2 content" > file2 + directory1$ cat file2 + file2 content + directory1$ cat file1 + cat: file1: No such file or directory + directory1$ mv file2 ../ + directory1$ cd .. + testannex$ echo "file3 content" > file3 + testannex$ + + +What is the expected output? What do you see instead? + +The links do not break when moved to another directory. + +What version of git-annex are you using? On what operating system? + +One compiled using cabal from checkout 739c937 + +Please provide any additional information below. + + -- cgit v1.2.3 From 0fa7f5446fa57524b7eed4f5c239054d58982485 Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Thu, 13 Dec 2012 20:50:18 +0000 Subject: Added a comment --- .../comment_1_e0dafc410ffd617d445bb9403c7bfafe._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_1_e0dafc410ffd617d445bb9403c7bfafe._comment diff --git a/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_1_e0dafc410ffd617d445bb9403c7bfafe._comment b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_1_e0dafc410ffd617d445bb9403c7bfafe._comment new file mode 100644 index 000000000..fef95243b --- /dev/null +++ b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_1_e0dafc410ffd617d445bb9403c7bfafe._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 1" + date="2012-12-13T20:50:18Z" + content=""" +(Operating system is OS X Lion) + +"""]] -- cgit v1.2.3 From 1bd443e8bab0acb733e2eede9f427b9c05257b02 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Thu, 13 Dec 2012 22:40:59 +0000 Subject: Added a comment --- .../comment_16_0b7cd3d5952c5abf36a89a68a4afc1e7._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/bugs/OSX_app_issues/comment_16_0b7cd3d5952c5abf36a89a68a4afc1e7._comment diff --git a/doc/bugs/OSX_app_issues/comment_16_0b7cd3d5952c5abf36a89a68a4afc1e7._comment b/doc/bugs/OSX_app_issues/comment_16_0b7cd3d5952c5abf36a89a68a4afc1e7._comment new file mode 100644 index 000000000..0b110ce52 --- /dev/null +++ b/doc/bugs/OSX_app_issues/comment_16_0b7cd3d5952c5abf36a89a68a4afc1e7._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 16" + date="2012-12-13T22:40:59Z" + content=""" +Today's daily build of the OSX app has a further change that *might* help. I removed the system library and frameworks from the bundle. +"""]] -- cgit v1.2.3 From 577507ea3ab0217d97688f8da2a9d7406316c60c Mon Sep 17 00:00:00 2001 From: "http://edward.myopenid.com/" Date: Fri, 14 Dec 2012 08:45:05 +0000 Subject: escape ^ --- doc/design/assistant/blog/day_107__memory_leak.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design/assistant/blog/day_107__memory_leak.mdwn b/doc/design/assistant/blog/day_107__memory_leak.mdwn index 9482552df..e33008f97 100644 --- a/doc/design/assistant/blog/day_107__memory_leak.mdwn +++ b/doc/design/assistant/blog/day_107__memory_leak.mdwn @@ -1,6 +1,6 @@ More bugfixes today. The assistant now seems to have enough users that they're turning up interesting bugs, which is good. But does keep me too -busy to add many more bugs^Wcode. +busy to add many more bugs\^Wcode. The fun one today made it bloat to eat all memory when logging out of a Linux desktop. I tracked that back to a bug in the Haskell DBUS library -- cgit v1.2.3 From 103e37d189e39e44158ff105b557c9cafde6c63c Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawkfHTPsiAcHEEN7Xl7WxiZmYq-vX7azxFY" Date: Fri, 14 Dec 2012 09:22:42 +0000 Subject: Added a comment: OS/X daily 2012-12-13 --- ...nt_17_c2de94a48e7958b9efffd89dda9144ff._comment | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 doc/bugs/OSX_app_issues/comment_17_c2de94a48e7958b9efffd89dda9144ff._comment diff --git a/doc/bugs/OSX_app_issues/comment_17_c2de94a48e7958b9efffd89dda9144ff._comment b/doc/bugs/OSX_app_issues/comment_17_c2de94a48e7958b9efffd89dda9144ff._comment new file mode 100644 index 000000000..83c2023db --- /dev/null +++ b/doc/bugs/OSX_app_issues/comment_17_c2de94a48e7958b9efffd89dda9144ff._comment @@ -0,0 +1,59 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawkfHTPsiAcHEEN7Xl7WxiZmYq-vX7azxFY" + nickname="Vincent" + subject="OS/X daily 2012-12-13" + date="2012-12-14T09:22:42Z" + content=""" +Thanks for the update - I tried again, similar results. + +same platform. installed image md5sum 1bb50b3ee5eda3cd7f4b4a70cdae1855 + +Procedure was the same. + - download, bunzip2, mount, drag app to Applications. + - chrome had one tab open, iconified + - double-click application icon + +Chrome opens up and shows the config window. Type in the same path +after checking that the final element of the path did not already exist. + + ps aux|grep git + me 89194 99.0 0.0 2460884 4160 ?? R 8:03pm 0:12.58 git init --quiet /Users/me/me/annex/ + me 89245 0.2 0.0 2423356 220 s001 R+ 8:07pm 0:00.00 grep git + me 89182 0.0 0.3 2668772 44208 ?? S 8:03pm 0:00.30 git-annex webapp -psn_0_55022710 + me 89177 0.0 0.0 2433432 868 ?? S 8:03pm 0:00.00 /bin/sh /Applications/git-annex.app/Contents/MacOS/git-annex-webapp -psn_0_55022710 + +I ran dtruss on the two processes of interest, including when I sent them kill -9 in case that showed anything of interest. +Mail me if you need that but the gist is git init was doing + + workq_kernreturn(0x1, 0x1019CC000, 0x0) = -1 Err#22 + workq_kernreturn(0x1, 0x1019CC000, 0x0) = -1 Err#22 + workq_kernreturn(0x1, 0x1019CC000, 0x0) = -1 Err#22 + ... + workq_kernreturn(0x1, 0x1019CC000, 0x0) = -1 Err#22 + dtrace: 2006687 drops on CPU 0 + workq_kernreturn(0x1, 0x1019CC000, 0x0) = -1 Err#22 + +and the git-annex webapp was doing stuff like + + psynch_cvwait(0x7FD7F1418888, 0x2BE010002BF00, 0x600) = -1 Err#260 + sigreturn(0x7FFF543DD810, 0x1E, 0x2) = 0 Err#-2 + __pthread_canceled(0x0, 0x2BE010002BF00, 0x7FFF543DD8C8) = -1 Err#22 + psynch_cvwait(0x7FD7F1418888, 0x2C8010002C900, 0x600) = -1 Err#260 + sigreturn(0x7FFF543DD810, 0x1E, 0x2) = 0 Err#-2 + __pthread_canceled(0x0, 0x2C8010002C900, 0x7FFF543DD8C8) = -1 Err#22 + psynch_cvwait(0x7FD7F1418888, 0x2D0010002D100, 0x600) = -1 Err#260 + sigreturn(0x7FFF543DD810, 0x1E, 0x2) = 0 Err#-2 + __pthread_canceled(0x0, 0x2D0010002D100, 0x7FFF543DD8C8) = -1 Err#22 + psynch_cvwait(0x7FD7F1418888, 0x2D7010002D800, 0x600) = -1 Err#260 + sigreturn(0x7FFF543DD810, 0x1E, 0x10DCEDC00) = 0 Err#-2 + __pthread_canceled(0x0, 0x2D7010002D800, 0x7FFF543DD8C8) = -1 Err#22 + psynch_cvwait(0x7FD7F14189D8, 0x230100002400, 0x2300) = 0 0 + read(0x6, \"\377\0\", 0x1000) = 1 0 + setitimer(0x0, 0x116903E50, 0x0) = 0 0 + write(0x7, \"\377\0\", 0x1) = 1 0 + sigreturn(0x7FFF543DD810, 0x1E, 0x0) = 0 Err#-2 + __pthread_canceled(0x0, 0x2BC010002BD00, 0x7FFF543DD8C8) = -1 Err#22 + +which may be unrelated browser event loop stuff I guess. + +"""]] -- cgit v1.2.3 From ddd0ee543d63577d56da92cd925c736f910afa3f Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawkZktNHFhxC1kYA9KKdKpYJO4clq9WDsjE" Date: Fri, 14 Dec 2012 17:57:41 +0000 Subject: --- ...Compression_in_special_remotes___40__specifically_S3__41____63__.mdwn | 1 + 1 file changed, 1 insertion(+) create mode 100644 doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__.mdwn diff --git a/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__.mdwn b/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__.mdwn new file mode 100644 index 000000000..49f3d75ef --- /dev/null +++ b/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__.mdwn @@ -0,0 +1 @@ +I use git-annex mostly to archive my photos. They're generally large raw files and I am encrypting them going to the S3 special remote. Are there any plans to compress objects before encrypting them? It would save on S3 costs, only add some overhead on get and copy, and I don't think there would be any problems looking up data later. -- cgit v1.2.3 From 04ef2614897c967dcd160e4fe50f31b8a84e5668 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 14:37:15 -0400 Subject: add calendar sidebar --- doc/design/assistant/blog.mdwn | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/design/assistant/blog.mdwn b/doc/design/assistant/blog.mdwn index 5e9b6c62f..e29dca435 100644 --- a/doc/design/assistant/blog.mdwn +++ b/doc/design/assistant/blog.mdwn @@ -2,4 +2,10 @@ The git-annex assistant is being [crowd funded on Kickstarter](http://www.kickstarter.com/projects/joeyh/git-annex-assistant-like-dropbox-but-with-your-own/). I'll be blogging about my progress here on a semi-daily basis. +[[!sidebar content=""" +[[!calendar type="month" pages="page(design/assistant/blog/*)" +[[!calendar type="month" month="-1" pages="page(design/assistant/blog/*)" +[[!calendar type="month" month="-2" pages="page(design/assistant/blog/*)" +"""]] + [[!inline pages="page(design/assistant/blog/*)" show=0]] -- cgit v1.2.3 From 04dd597bc31e61a4c54d6f8c32f0d87ec16bab49 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Fri, 14 Dec 2012 18:53:04 +0000 Subject: Added a comment --- .../comment_1_9c6c4ca0c9dc6976ba7cf27e84683bf0._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__/comment_1_9c6c4ca0c9dc6976ba7cf27e84683bf0._comment diff --git a/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__/comment_1_9c6c4ca0c9dc6976ba7cf27e84683bf0._comment b/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__/comment_1_9c6c4ca0c9dc6976ba7cf27e84683bf0._comment new file mode 100644 index 000000000..7c5f1ecc1 --- /dev/null +++ b/doc/forum/Compression_in_special_remotes___40__specifically_S3__41____63__/comment_1_9c6c4ca0c9dc6976ba7cf27e84683bf0._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 1" + date="2012-12-14T18:53:04Z" + content=""" +gpg compresses encrypted content by default, so all encrypted special remotes get compression for free +"""]] -- cgit v1.2.3 From 2be88855ba706a34ef4d4b1a63ad0e6c9df4f191 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 15:01:29 -0400 Subject: typo --- doc/design/assistant/blog.mdwn | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/design/assistant/blog.mdwn b/doc/design/assistant/blog.mdwn index e29dca435..fe7d6bd21 100644 --- a/doc/design/assistant/blog.mdwn +++ b/doc/design/assistant/blog.mdwn @@ -3,9 +3,9 @@ The git-annex assistant is being I'll be blogging about my progress here on a semi-daily basis. [[!sidebar content=""" -[[!calendar type="month" pages="page(design/assistant/blog/*)" -[[!calendar type="month" month="-1" pages="page(design/assistant/blog/*)" -[[!calendar type="month" month="-2" pages="page(design/assistant/blog/*)" +[[!calendar type="month" pages="page(design/assistant/blog/*)"]] +[[!calendar type="month" month="-1" pages="page(design/assistant/blog/*)"]] +[[!calendar type="month" month="-2" pages="page(design/assistant/blog/*)"]] """]] [[!inline pages="page(design/assistant/blog/*)" show=0]] -- cgit v1.2.3 From d6adaf499124c11e3d79252821ef400d2a87b155 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 15:05:08 -0400 Subject: quiet shell error message --- Build/Configure.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/Configure.hs b/Build/Configure.hs index d25445f40..4ac85811b 100644 --- a/Build/Configure.hs +++ b/Build/Configure.hs @@ -50,7 +50,7 @@ shaTestCases l = map make l zip (shacmds n) (repeat check) where key = "sha" ++ show n - check = " [x, 'g':x, osxpath x]) $ map (\x -> "sha" ++ show n ++ x) ["sum", ""] {- Max OSX sometimes puts GNU tools outside PATH, so look in -- cgit v1.2.3 From 3780a5eb0a01e3d31fc0de2410f7b01518710a0e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 15:52:44 -0400 Subject: move thirdparty program installation for standalone bundle into haskell program This allows it to use Build.SysConfig to always install the programs configure detected. Amoung other fixes, this ensures the right uuid generator and checksum programs are installed. I also cleaned up the handling of lsof's path; configure now checks for it in PATH, but falls back to looking for it in sbin directories. --- Assistant/Threads/Watcher.hs | 4 ++- Build/Configure.hs | 2 +- Build/Standalone.hs | 78 ++++++++++++++++++++++++++++++++++++++++++++ Build/TestConfig.hs | 22 +++++++++++++ Makefile | 24 ++------------ Utility/Lsof.hs | 13 ++++++++ Utility/Path.hs | 20 ++++++++++-- 7 files changed, 136 insertions(+), 27 deletions(-) create mode 100644 Build/Standalone.hs diff --git a/Assistant/Threads/Watcher.hs b/Assistant/Threads/Watcher.hs index f7e4e2df2..08689cca4 100644 --- a/Assistant/Threads/Watcher.hs +++ b/Assistant/Threads/Watcher.hs @@ -24,6 +24,7 @@ import Assistant.Drop import Logs.Transfer import Utility.DirWatcher import Utility.Types.DirWatcher +import Utility.Lsof import qualified Annex import qualified Annex.Queue import qualified Git.Command @@ -39,7 +40,8 @@ import qualified Data.ByteString.Lazy as L checkCanWatch :: Annex () checkCanWatch - | canWatch = + | canWatch = do + liftIO setupLsof unlessM (liftIO (inPath "lsof") <||> Annex.getState Annex.force) needLsof | otherwise = error "watch mode is not available on this system" diff --git a/Build/Configure.hs b/Build/Configure.hs index 4ac85811b..491a74461 100644 --- a/Build/Configure.hs +++ b/Build/Configure.hs @@ -26,7 +26,7 @@ tests = , TestCase "wget" $ testCmd "wget" "wget --version >/dev/null" , TestCase "bup" $ testCmd "bup" "bup --version >/dev/null" , TestCase "gpg" $ testCmd "gpg" "gpg --version >/dev/null" - , TestCase "lsof" $ testCmd "lsof" "lsof -v >/dev/null 2>&1" + , TestCase "lsof" $ findCmdPath "lsof" "lsof" , TestCase "ssh connection caching" getSshConnectionCaching ] ++ shaTestCases [ (1, "da39a3ee5e6b4b0d3255bfef95601890afd80709") diff --git a/Build/Standalone.hs b/Build/Standalone.hs new file mode 100644 index 000000000..cf0abbc13 --- /dev/null +++ b/Build/Standalone.hs @@ -0,0 +1,78 @@ +{- Makes standalone bundle. + - + - Copyright 2012 Joey Hess + - + - Licensed under the GNU GPL version 3 or higher. + -} + +{-# LANGUAGE CPP #-} + +module Build.Standalone where + +import Control.Applicative +import Control.Monad.IfElse +import System.Environment +import Data.Maybe +import System.FilePath +import System.Directory +import System.IO +import Control.Monad +import Data.List +import Build.SysConfig as SysConfig + +import Utility.PartialPrelude +import Utility.Directory +import Utility.Process +import Utility.Monad +import Utility.SafeCommand +import Utility.Path + +{- Programs that git-annex uses, to include in the bundle. + - + - These may be just the command name, or the full path to it. -} +thirdpartyProgs :: [FilePath] +thirdpartyProgs = catMaybes + [ Just "git" + , Just "cp" + , Just "xargs" + , Just "gpg" + , Just "rsync" + , Just "ssh" + , Just "sh" + , headMaybe $ words SysConfig.uuid -- may include parameters + , ifset SysConfig.curl "curl" + , ifset SysConfig.wget "wget" + , ifset SysConfig.bup "bup" + , SysConfig.lsof + , SysConfig.sha1 + , SysConfig.sha256 + , SysConfig.sha512 + , SysConfig.sha224 + , SysConfig.sha384 + ] + where + ifset True s = Just s + ifset False _ = Nothing + +progDir :: FilePath -> FilePath +#ifdef darwin_HOST_OS +progDir topdir = topdir +#else +progDir topdir = topdir "bin" +#endif + +installProg :: FilePath -> FilePath -> IO () +installProg dir prog = searchPath prog >>= go + where + go Nothing = error $ "cannot find " ++ prog ++ " in PATH" + go (Just f) = unlessM (boolSystem "install" [File f, File dir]) $ + error $ "install failed for " ++ prog + +main = getArgs >>= go + where + go [] = error "specify topdir" + go (topdir:_) = do + let dir = progDir topdir + createDirectoryIfMissing True dir + forM_ thirdpartyProgs $ installProg dir + diff --git a/Build/TestConfig.hs b/Build/TestConfig.hs index 92f6f6843..9937f799f 100644 --- a/Build/TestConfig.hs +++ b/Build/TestConfig.hs @@ -2,9 +2,14 @@ module Build.TestConfig where +import Utility.Path +import Utility.Monad + import System.IO import System.Cmd import System.Exit +import System.FilePath +import System.Directory type ConfigKey = String data ConfigValue = @@ -98,6 +103,23 @@ searchCmd success failure cmdsparams = search cmdsparams then success c else search cs +{- Finds a command, either in PATH or perhaps in a sbin directory not in + - PATH. If it's in PATH the config is set to just the command name, + - but if it's found outside PATH, the config is set to the full path to + - the command. -} +findCmdPath :: ConfigKey -> String -> Test +findCmdPath k command = do + ifM (inPath command) + ( return $ Config k $ MaybeStringConfig $ Just command + , do + r <- getM find ["/usr/sbin", "/sbin", "/usr/local/sbin"] + return $ Config k $ MaybeStringConfig r + ) + where + find d = + let f = d command + in ifM (doesFileExist f) ( return (Just f), return Nothing ) + quiet :: String -> String quiet s = s ++ " >/dev/null 2>&1" diff --git a/Makefile b/Makefile index 90d44af54..31f32b871 100644 --- a/Makefile +++ b/Makefile @@ -143,9 +143,6 @@ sdist: clean $(mans) hackage: sdist @cabal upload dist/*.tar.gz -THIRDPARTY_BINS=git curl lsof xargs rsync uuid wget gpg \ - sha1sum sha224sum sha256sum sha384sum sha512sum cp ssh sh - LINUXSTANDALONE_DEST=$(GIT_ANNEX_TMP_BUILD_DIR)/git-annex.linux linuxstandalone: $(MAKE) git-annex @@ -160,16 +157,7 @@ linuxstandalone: ln -sf git-annex "$(LINUXSTANDALONE_DEST)/bin/git-annex-shell" zcat standalone/licences.gz > $(LINUXSTANDALONE_DEST)/LICENSE - set -e; \ - for bin in $(THIRDPARTY_BINS); do \ - p="$$(PATH=$$PATH:/usr/sbin:/sbin:/usr/local/sbin which "$$bin")"; \ - if [ -z "$$p" ]; then \ - echo "** missing $$bin" >&2; \ - exit 1; \ - else \ - cp "$$p" "$(LINUXSTANDALONE_DEST)/bin/"; \ - fi; \ - done + runghc Build/Standalone.hs "$(LINUXSTANDALONE_DEST)" install -d "$(LINUXSTANDALONE_DEST)/git-core" (cd "$(shell git --exec-path)" && tar c .) | (cd "$(LINUXSTANDALONE_DEST)"/git-core && tar x) @@ -207,15 +195,7 @@ osxapp: gzcat standalone/licences.gz > $(OSXAPP_BASE)/LICENSE cp $(OSXAPP_BASE)/LICENSE $(GIT_ANNEX_TMP_BUILD_DIR)/build-dmg/LICENSE.txt - for bin in $(THIRDPARTY_BINS); do \ - p="$$(PATH=$$PATH:/usr/sbin:/sbin:/usr/local/sbin which "$$bin")"; \ - if [ -z "$$p" ]; then \ - echo "** missing $$bin" >&2; \ - exit 1; \ - else \ - cp "$$p" "$(OSXAPP_BASE)"; \ - fi; \ - done + runghc Build/Standalone.hs $(OSXAPP_BASE) (cd "$(shell git --exec-path)" && tar c .) | (cd "$(OSXAPP_BASE)" && tar x) install -d "$(OSXAPP_BASE)/templates" diff --git a/Utility/Lsof.hs b/Utility/Lsof.hs index 72f3e5815..9a877a3c9 100644 --- a/Utility/Lsof.hs +++ b/Utility/Lsof.hs @@ -10,8 +10,10 @@ module Utility.Lsof where import Common +import Build.SysConfig as SysConfig import System.Posix.Types +import System.Posix.Env data LsofOpenMode = OpenReadWrite | OpenReadOnly | OpenWriteOnly | OpenUnknown deriving (Show, Eq) @@ -21,6 +23,17 @@ type CmdLine = String data ProcessInfo = ProcessInfo ProcessID CmdLine deriving (Show) +{- lsof is not in PATH on all systems, so SysConfig may have the absolute + - path where the program was found. Make sure at runtime that lsof is + - available, and if it's not in PATH, adjust PATH to contain it. -} +setupLsof :: IO () +setupLsof = do + let cmd = fromMaybe "lsof" SysConfig.lsof + when (isAbsolute cmd) $ do + path <- getSearchPath + let path' = takeDirectory cmd : path + setEnv "PATH" (join [searchPathSeparator] path') True + {- Checks each of the files in a directory to find open files. - Note that this will find hard links to files elsewhere that are open. -} queryDir :: FilePath -> IO [(FilePath, LsofOpenMode, ProcessInfo)] diff --git a/Utility/Path.hs b/Utility/Path.hs index 4bab297da..ba836d9b6 100644 --- a/Utility/Path.hs +++ b/Utility/Path.hs @@ -132,11 +132,25 @@ relHome path = do then "~/" ++ relPathDirToFile home path else path -{- Checks if a command is available in PATH. -} +{- Checks if a command is available in PATH. + - + - The command may be fully-qualified, in which case, this succeeds as + - long as it exists. -} inPath :: String -> IO Bool -inPath command = getSearchPath >>= anyM indir +inPath command = isJust <$> searchPath command + +{- Finds a command in PATH and returns the full path to it. + - + - The command may be fully qualified already, in which case it will + - be returned if it exists. + -} +searchPath :: String -> IO (Maybe FilePath) +searchPath command + | isAbsolute command = check command + | otherwise = getSearchPath >>= getM indir where - indir d = doesFileExist $ d command + indir d = check $ d command + check f = ifM (doesFileExist f) ( return (Just f), return Nothing ) {- Checks if a filename is a unix dotfile. All files inside dotdirs - count as dotfiles. -} -- cgit v1.2.3 From 91f588ab62abedafa53b0b4432f811d0974cf979 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 16:28:27 -0400 Subject: kqueue: Fix bug that made broken symlinks not be noticed. --- Utility/Kqueue.hs | 2 +- debian/changelog | 6 ++++++ .../assistant_not_noticing_file_renames__44___not_fixing_files.mdwn | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Utility/Kqueue.hs b/Utility/Kqueue.hs index f9f965f6f..f0559e531 100644 --- a/Utility/Kqueue.hs +++ b/Utility/Kqueue.hs @@ -80,7 +80,7 @@ getDirInfo dir = do return $ DirInfo dir contents where getDirEnt f = catchMaybeIO $ do - s <- getFileStatus (dir f) + s <- getSymbolicLinkStatus (dir f) return $ DirEnt f (fileID s) (isDirectory s) {- Difference between the dirCaches of two DirInfos. -} diff --git a/debian/changelog b/debian/changelog index ec9b9f6e3..a0dd005d1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +git-annex (3.20121212) UNRELEASED; urgency=low + + * kqueue: Fix bug that made broken symlinks not be noticed. + + -- Joey Hess Fri, 14 Dec 2012 16:25:14 -0400 + git-annex (3.20121211) unstable; urgency=low * webapp: Defaults to sharing box.com account info with friends, allowing diff --git a/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn index 4c92623f8..d009b55cd 100644 --- a/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn +++ b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files.mdwn @@ -63,4 +63,6 @@ One compiled using cabal from checkout 739c937 Please provide any additional information below. - +> [[fixed|done]]; this turned out to be an kqueue specific bug, +> the kqueue code statted new files, but that files for a broken symlink. +> Using lstat instead fixed this. --[[Joey]] -- cgit v1.2.3 From 92fec26dd3837a74db0149d80d33d9c4d985d70b Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Fri, 14 Dec 2012 20:55:12 +0000 Subject: Added a comment --- .../comment_18_88ddc846eb4e4a2d54028a3412ba28d6._comment | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 doc/bugs/OSX_app_issues/comment_18_88ddc846eb4e4a2d54028a3412ba28d6._comment diff --git a/doc/bugs/OSX_app_issues/comment_18_88ddc846eb4e4a2d54028a3412ba28d6._comment b/doc/bugs/OSX_app_issues/comment_18_88ddc846eb4e4a2d54028a3412ba28d6._comment new file mode 100644 index 000000000..45c14024e --- /dev/null +++ b/doc/bugs/OSX_app_issues/comment_18_88ddc846eb4e4a2d54028a3412ba28d6._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 18" + date="2012-12-14T20:55:12Z" + content=""" +I've built the app on 10.8.2, let's hope that'll finally put this problem to rest. + +Temporarily available here: + +(This build currently lacks XMPP support.) +"""]] -- cgit v1.2.3 From f2035c185afef1dbdb5bab98761a5927e6f7f99a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 16:57:58 -0400 Subject: blog for the day --- doc/design/assistant/blog/day_152__bugfixes.mdwn | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 doc/design/assistant/blog/day_152__bugfixes.mdwn diff --git a/doc/design/assistant/blog/day_152__bugfixes.mdwn b/doc/design/assistant/blog/day_152__bugfixes.mdwn new file mode 100644 index 000000000..da70fd156 --- /dev/null +++ b/doc/design/assistant/blog/day_152__bugfixes.mdwn @@ -0,0 +1,18 @@ +Fixed a bug in the kqueue code that made the assistant not notice when a +file was renamed into a subdirectory. This turned out to be because the +symlink got broken, and it was using `stat` on the file. Switching to +`lstat` fixed that. + +Improved installation of programs into standalone bundles. Now it uses +the programs detected by configure, rather than a separate hardcoded list. +Also improved handling of lsof, which is not always in PATH. + +Made a OSX 10.8.2 build of the app, which is nearly my last gasp attempt +at finding a way around this crazy `git init` spinning problem with Jimmy's +daily builds are used with newer OSX versions. Try it here: + + +---- + +Mailed out the Kickstarter T-shirt rewards today, to people in the US. +Have to fill out a bunch of forms before I can mail the non-US ones. -- cgit v1.2.3 From f402ec9db998fc2348d2fdc4953696d17dc442dd Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 14 Dec 2012 22:56:15 +0300 Subject: cabal: add missing depend to 'test-suite', guard against 'kqueue' on linux Fixes the following test failure: Preprocessing test suite 'test' for git-annex-3.20121211... Remote/Git.hs:42:8: Could not find module `Control.Concurrent.MSampleVar' It is a member of the hidden package `SafeSemaphore-0.9.0'. Perhaps you need to add `SafeSemaphore' to the build-depends in your .cabal file. Use -v to see a list of the files searched for. Signed-off-by: Sergei Trofimovich --- git-annex.cabal | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-annex.cabal b/git-annex.cabal index 67b7658d7..cceeb27e2 100644 --- a/git-annex.cabal +++ b/git-annex.cabal @@ -84,7 +84,7 @@ Executable git-annex Build-Depends: hinotify CPP-Options: -DWITH_INOTIFY else - if (! os(windows) && ! os(solaris)) + if (! os(windows) && ! os(solaris) && ! os(linux)) CPP-Options: -DWITH_KQUEUE C-Sources: Utility/libkqueue.c @@ -119,7 +119,7 @@ Test-Suite test old-locale, time, pcre-light, extensible-exceptions, dataenc, SHA, process, json, HTTP, base (>= 4.5 && < 4.7), monad-control, transformers-base, lifted-base, IfElse, text, QuickCheck >= 2.1, - bloomfilter, edit-distance, process + bloomfilter, edit-distance, process, SafeSemaphore Other-Modules: Utility.Touch Include-Dirs: Utility C-Sources: Utility/libdiskfree.c -- cgit v1.2.3 From 1412e16c56ec7fc7a78f287af9389e5a17f90e1e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 14 Dec 2012 22:27:22 -0400 Subject: move away 2 old comments that I think are now addressed in the install instructions --- ...nt_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment | 11 ----------- ...ent_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment | 23 ---------------------- ...nt_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment | 11 +++++++++++ ...ent_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment | 23 ++++++++++++++++++++++ 4 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 doc/install/OSX/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment delete mode 100644 doc/install/OSX/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment create mode 100644 doc/install/OSX/old_comments/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment create mode 100644 doc/install/OSX/old_comments/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment diff --git a/doc/install/OSX/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment b/doc/install/OSX/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment deleted file mode 100644 index d655da725..000000000 --- a/doc/install/OSX/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment +++ /dev/null @@ -1,11 +0,0 @@ -[[!comment format=mdwn - username="https://www.google.com/accounts/o8/id?id=AItOawkp-1EQboBDqZ05MxOHNkwNQDM4luWYioA" - nickname="Charles" - subject="comment 10" - date="2012-11-15T13:26:57Z" - content=""" -Installing it with brew, I had to do the following steps before the final `cabal` command: - -* `cabal install c2hs` -* add `$HOME/.cabal/bin` to my `$PATH` (so that c2hs program can be found) -"""]] diff --git a/doc/install/OSX/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment b/doc/install/OSX/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment deleted file mode 100644 index faa7b1b43..000000000 --- a/doc/install/OSX/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment +++ /dev/null @@ -1,23 +0,0 @@ -[[!comment format=mdwn - username="https://www.google.com/accounts/o8/id?id=AItOawnBEsNDl_6O4rHb2en3I0-fg-6fUxglaRQ" - nickname="chee" - subject="Recent install for OS X" - date="2012-11-13T04:40:05Z" - content=""" -if you are having trouble installing with `cabal install git-annex` at the moment, trouble of the XML kind, you'll need to do a couple things: - -`brew update` -`brew install libxml2` -`cabal update` -`cabal install libxml --extra-include-dirs=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --extra-lib-dirs=/usr/local/Cellar/libxml2/2.8.0/lib` - -well, then i hit a brick wall. - -well. - -I got it to work by manually symlinking from `../Cellar/libxml2/2.8.0/lib/`* into `/usr/local` and from `../../Cellar/libxml2/2.8.0/lib/` to `/usr/local/pkgconfig`, but i can't recommend it or claim to be too proud about it all. - -OS X already has an old libxml knocking around so this might ruin everything for me. - -let's find out ! -"""]] diff --git a/doc/install/OSX/old_comments/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment b/doc/install/OSX/old_comments/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment new file mode 100644 index 000000000..d655da725 --- /dev/null +++ b/doc/install/OSX/old_comments/comment_10_4d15bfc4fc26e7249953bebfbb09e0aa._comment @@ -0,0 +1,11 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawkp-1EQboBDqZ05MxOHNkwNQDM4luWYioA" + nickname="Charles" + subject="comment 10" + date="2012-11-15T13:26:57Z" + content=""" +Installing it with brew, I had to do the following steps before the final `cabal` command: + +* `cabal install c2hs` +* add `$HOME/.cabal/bin` to my `$PATH` (so that c2hs program can be found) +"""]] diff --git a/doc/install/OSX/old_comments/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment b/doc/install/OSX/old_comments/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment new file mode 100644 index 000000000..faa7b1b43 --- /dev/null +++ b/doc/install/OSX/old_comments/comment_9_c6b1b31d16f2144ad08abd8c767b6ab9._comment @@ -0,0 +1,23 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawnBEsNDl_6O4rHb2en3I0-fg-6fUxglaRQ" + nickname="chee" + subject="Recent install for OS X" + date="2012-11-13T04:40:05Z" + content=""" +if you are having trouble installing with `cabal install git-annex` at the moment, trouble of the XML kind, you'll need to do a couple things: + +`brew update` +`brew install libxml2` +`cabal update` +`cabal install libxml --extra-include-dirs=/usr/local/Cellar/libxml2/2.8.0/include/libxml2 --extra-lib-dirs=/usr/local/Cellar/libxml2/2.8.0/lib` + +well, then i hit a brick wall. + +well. + +I got it to work by manually symlinking from `../Cellar/libxml2/2.8.0/lib/`* into `/usr/local` and from `../../Cellar/libxml2/2.8.0/lib/` to `/usr/local/pkgconfig`, but i can't recommend it or claim to be too proud about it all. + +OS X already has an old libxml knocking around so this might ruin everything for me. + +let's find out ! +"""]] -- cgit v1.2.3 From 830b93c7edf263d292733b346d2e72c73878be9a Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Sat, 15 Dec 2012 05:47:25 +0000 Subject: Added a comment --- .../comment_2_2af247c8a1fcbde10795a990ef3303e9._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_2_2af247c8a1fcbde10795a990ef3303e9._comment diff --git a/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_2_2af247c8a1fcbde10795a990ef3303e9._comment b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_2_2af247c8a1fcbde10795a990ef3303e9._comment new file mode 100644 index 000000000..6d93d7e61 --- /dev/null +++ b/doc/bugs/assistant_not_noticing_file_renames__44___not_fixing_files/comment_2_2af247c8a1fcbde10795a990ef3303e9._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 2" + date="2012-12-15T05:47:25Z" + content=""" +thanks, fix worked for me! Now the links are fixed virtually instantaneously when the file is moved. + +"""]] -- cgit v1.2.3 From b03d905d759e6d177640917b33e8c5f4fbae0213 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 15 Dec 2012 07:01:07 +0000 Subject: calendar update --- doc/design/assistant/blog/archives/2012.mdwn | 1 + doc/design/assistant/blog/archives/2012/01.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/02.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/03.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/04.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/05.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/06.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/07.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/08.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/09.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/10.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/11.mdwn | 5 +++++ doc/design/assistant/blog/archives/2012/12.mdwn | 5 +++++ 13 files changed, 61 insertions(+) create mode 100644 doc/design/assistant/blog/archives/2012.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/01.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/02.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/03.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/04.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/05.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/06.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/07.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/08.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/09.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/10.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/11.mdwn create mode 100644 doc/design/assistant/blog/archives/2012/12.mdwn diff --git a/doc/design/assistant/blog/archives/2012.mdwn b/doc/design/assistant/blog/archives/2012.mdwn new file mode 100644 index 000000000..96cc616af --- /dev/null +++ b/doc/design/assistant/blog/archives/2012.mdwn @@ -0,0 +1 @@ +[[!calendar type=year year=2012 pages="page(design/assistant/blog/*)"]] diff --git a/doc/design/assistant/blog/archives/2012/01.mdwn b/doc/design/assistant/blog/archives/2012/01.mdwn new file mode 100644 index 000000000..e02157dae --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/01.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=01 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(01) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/02.mdwn b/doc/design/assistant/blog/archives/2012/02.mdwn new file mode 100644 index 000000000..b07026d24 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/02.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=02 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(02) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/03.mdwn b/doc/design/assistant/blog/archives/2012/03.mdwn new file mode 100644 index 000000000..7c9422854 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/03.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=03 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(03) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/04.mdwn b/doc/design/assistant/blog/archives/2012/04.mdwn new file mode 100644 index 000000000..e3a46541b --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/04.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=04 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(04) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/05.mdwn b/doc/design/assistant/blog/archives/2012/05.mdwn new file mode 100644 index 000000000..52c666ca7 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/05.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=05 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(05) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/06.mdwn b/doc/design/assistant/blog/archives/2012/06.mdwn new file mode 100644 index 000000000..2c80aff30 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/06.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=06 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(06) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/07.mdwn b/doc/design/assistant/blog/archives/2012/07.mdwn new file mode 100644 index 000000000..31b2727b2 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/07.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=07 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(07) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/08.mdwn b/doc/design/assistant/blog/archives/2012/08.mdwn new file mode 100644 index 000000000..46f6a31bb --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/08.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=08 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(08) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/09.mdwn b/doc/design/assistant/blog/archives/2012/09.mdwn new file mode 100644 index 000000000..aa9dab32c --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/09.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=09 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(09) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/10.mdwn b/doc/design/assistant/blog/archives/2012/10.mdwn new file mode 100644 index 000000000..14988c63f --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/10.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=10 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(10) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/11.mdwn b/doc/design/assistant/blog/archives/2012/11.mdwn new file mode 100644 index 000000000..65e4c8aa8 --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/11.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=11 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(11) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/12.mdwn b/doc/design/assistant/blog/archives/2012/12.mdwn new file mode 100644 index 000000000..84f042b5b --- /dev/null +++ b/doc/design/assistant/blog/archives/2012/12.mdwn @@ -0,0 +1,5 @@ +[[!sidebar content=""" +[[!calendar type=month month=12 year=2012 pages="page(design/assistant/blog/*)"]] +"""]] + +[[!inline pages="creation_month(12) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] -- cgit v1.2.3 From c3da1354658b8a7dbe5d5f0422a239d75df52b6e Mon Sep 17 00:00:00 2001 From: Steve Date: Sat, 15 Dec 2012 14:06:24 +0000 Subject: --- ...roactively_annex_a_file_already_in_a_git_repo.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn diff --git a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn new file mode 100644 index 000000000..97f5828d3 --- /dev/null +++ b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn @@ -0,0 +1,19 @@ +I worked out how to retroactively annex a large file that had been checked into a git repo some time ago. I thought this might be useful for others, so I am posting it here. + +Suppose you have a git repo where somebody had checked in a large file you would like to have annexed, but there are a bunch of commits after it and you don't want to loose history, but you also don't want everybody to have to retrieve the large file when they clone the repo. This will re-write history as if the file had been annexed when it was originally added. + +This command works for me, it relies on the current behavior of git which is to use a directory named .git-rewrite/t/ at the top of the git tree for the extracted tree. This will not be fast and it will rewrite history, so be sure that everybody who has a copy of your repo is OK with accepting the new history. If the behavior of git changes, you can specify the directory to use with the -d option. Currently, the t/ directory is created inside the directory you specify, so "-d ./.git-rewrite/" should be roughly equivalent to the default. + +Enough with the explanation, on to the command: +
+git filter-branch --tree-filter 'for FILE in file1 file2 file3;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
+
+ +replace file1 file2 file3... with whatever paths you want retroactively annexed. If you wanted bigfile1.bin in the top dir and subdir1/bigfile2.bin to be retroactively annexed try: +
+git filter-branch --tree-filter 'for FILE in bigfile1.bin subdir1/bigfile2.bin;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
+
+ +**If your repo has tags** then you should take a look at the git-filter-branch man page about the --tag-name-filter option and decide what you want to do. By default this will re-write the tags "nearly properly". + +You'll probably also want to look at the git-filter-branch man page's section titled "CHECKLIST FOR SHRINKING A REPOSITORY" if you want to free up the space in the existing repo that you just changed history on. -- cgit v1.2.3 From 35802c7050887e50a743d53db8b92ba577da01ac Mon Sep 17 00:00:00 2001 From: andy Date: Sat, 15 Dec 2012 22:32:52 +0000 Subject: --- doc/forum/Storing_uncontrolled_files_in_an_annex.mdwn | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 doc/forum/Storing_uncontrolled_files_in_an_annex.mdwn diff --git a/doc/forum/Storing_uncontrolled_files_in_an_annex.mdwn b/doc/forum/Storing_uncontrolled_files_in_an_annex.mdwn new file mode 100644 index 000000000..e2111f0b9 --- /dev/null +++ b/doc/forum/Storing_uncontrolled_files_in_an_annex.mdwn @@ -0,0 +1,3 @@ +Is there a way to store a file in an annex repo without the assistant trying to commit it? My particular issue is that git annex watch tries to add my .thunderbird folder, and I don't want it in annex. Is that a supported use case? + +Also, for my better understanding, does watch keep track of what files it saw last time and only look for new things on startup? Or does it try to commit anything that's not already in git (whether symlink or not)? -- cgit v1.2.3 From 3fa7881a7cbfcbb91bc97f4b4439fa610353c258 Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Sun, 16 Dec 2012 00:10:39 +0000 Subject: Added a comment --- ...ent_1_175645a90be0c79221c129308adf643e._comment | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 doc/forum/Storing_uncontrolled_files_in_an_annex/comment_1_175645a90be0c79221c129308adf643e._comment diff --git a/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_1_175645a90be0c79221c129308adf643e._comment b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_1_175645a90be0c79221c129308adf643e._comment new file mode 100644 index 000000000..2932efa39 --- /dev/null +++ b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_1_175645a90be0c79221c129308adf643e._comment @@ -0,0 +1,27 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 1" + date="2012-12-16T00:10:39Z" + content=""" +wow, are you git annexing your whole home directory? that sounds extreme and problematic, since everything in git annex becomes read-only!! + +This how to make git annex ignore something though: make git ignore it in the first place. + +Stop the git assistant if it's running. + +create a file called \".gitignore\" in the root of your annex directory; add a line to that file for everything you want git (and therefore git annex) to ignore, e.g. \".thunderbird\" + + +e.g.: + + echo '.thunderbird' > '.gitignore' + +check that file into git: + + + git add .gitignore + git commit -m 'check in .gitignore' + +Now you should be able to start up git-annex again and have it ignore .thunderbird, or any other path you put in .gitignore +"""]] -- cgit v1.2.3 From f20dd916d8832ed4c1462e9f07bf17ec195c4e6d Mon Sep 17 00:00:00 2001 From: "http://edheil.wordpress.com/" Date: Sun, 16 Dec 2012 00:11:38 +0000 Subject: Added a comment --- .../comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment diff --git a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment new file mode 100644 index 000000000..d4e34e8cd --- /dev/null +++ b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 1" + date="2012-12-16T00:11:38Z" + content=""" +Man, I wish you'd written this a couple weeks ago. :) I was never able to figure that incantation out and ended up unannexing and re-annexing the whole thing to get rid of the file I inadvertently checked into git instead of the annex. +"""]] -- cgit v1.2.3 From 0605f54d54dcb3c4ec3cf6e271873e50ba9e0148 Mon Sep 17 00:00:00 2001 From: andy Date: Sun, 16 Dec 2012 00:31:10 +0000 Subject: Added a comment: Thanks! --- .../comment_2_d29f214eadfe3bfd098bbc3bcf07129a._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/forum/Storing_uncontrolled_files_in_an_annex/comment_2_d29f214eadfe3bfd098bbc3bcf07129a._comment diff --git a/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_2_d29f214eadfe3bfd098bbc3bcf07129a._comment b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_2_d29f214eadfe3bfd098bbc3bcf07129a._comment new file mode 100644 index 000000000..395f08d24 --- /dev/null +++ b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_2_d29f214eadfe3bfd098bbc3bcf07129a._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="andy" + ip="108.92.50.62" + subject="Thanks!" + date="2012-12-16T00:31:09Z" + content=""" +That does what I needed. I'd forgotten about that. :) +"""]] -- cgit v1.2.3 From 30132cd8f0f3dcda20408a23e9107c520316558c Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawkfHTPsiAcHEEN7Xl7WxiZmYq-vX7azxFY" Date: Sun, 16 Dec 2012 05:27:06 +0000 Subject: Added a comment --- .../comment_19_aff4ab761c4d196732baa046af45fe24._comment | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 doc/bugs/OSX_app_issues/comment_19_aff4ab761c4d196732baa046af45fe24._comment diff --git a/doc/bugs/OSX_app_issues/comment_19_aff4ab761c4d196732baa046af45fe24._comment b/doc/bugs/OSX_app_issues/comment_19_aff4ab761c4d196732baa046af45fe24._comment new file mode 100644 index 000000000..76fc993e4 --- /dev/null +++ b/doc/bugs/OSX_app_issues/comment_19_aff4ab761c4d196732baa046af45fe24._comment @@ -0,0 +1,11 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawkfHTPsiAcHEEN7Xl7WxiZmYq-vX7azxFY" + nickname="Vincent" + subject="comment 19" + date="2012-12-16T05:27:06Z" + content=""" +downloaded the 10.8.2 build, md5 9fc31ec6dcf0088d3723d1b25110f7f7. + +git --init works instantaneously. + +"""]] -- cgit v1.2.3 From d979feb18c47b912df7bb7073704571cfb10aff6 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 16 Dec 2012 15:13:53 -0400 Subject: removing archive pages, which broke the blog and I don't want --- doc/design/assistant/blog/archives/2012.mdwn | 1 - doc/design/assistant/blog/archives/2012/01.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/02.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/03.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/04.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/05.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/06.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/07.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/08.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/09.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/10.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/11.mdwn | 5 ----- doc/design/assistant/blog/archives/2012/12.mdwn | 5 ----- 13 files changed, 61 deletions(-) delete mode 100644 doc/design/assistant/blog/archives/2012.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/01.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/02.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/03.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/04.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/05.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/06.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/07.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/08.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/09.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/10.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/11.mdwn delete mode 100644 doc/design/assistant/blog/archives/2012/12.mdwn diff --git a/doc/design/assistant/blog/archives/2012.mdwn b/doc/design/assistant/blog/archives/2012.mdwn deleted file mode 100644 index 96cc616af..000000000 --- a/doc/design/assistant/blog/archives/2012.mdwn +++ /dev/null @@ -1 +0,0 @@ -[[!calendar type=year year=2012 pages="page(design/assistant/blog/*)"]] diff --git a/doc/design/assistant/blog/archives/2012/01.mdwn b/doc/design/assistant/blog/archives/2012/01.mdwn deleted file mode 100644 index e02157dae..000000000 --- a/doc/design/assistant/blog/archives/2012/01.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=01 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(01) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/02.mdwn b/doc/design/assistant/blog/archives/2012/02.mdwn deleted file mode 100644 index b07026d24..000000000 --- a/doc/design/assistant/blog/archives/2012/02.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=02 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(02) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/03.mdwn b/doc/design/assistant/blog/archives/2012/03.mdwn deleted file mode 100644 index 7c9422854..000000000 --- a/doc/design/assistant/blog/archives/2012/03.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=03 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(03) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/04.mdwn b/doc/design/assistant/blog/archives/2012/04.mdwn deleted file mode 100644 index e3a46541b..000000000 --- a/doc/design/assistant/blog/archives/2012/04.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=04 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(04) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/05.mdwn b/doc/design/assistant/blog/archives/2012/05.mdwn deleted file mode 100644 index 52c666ca7..000000000 --- a/doc/design/assistant/blog/archives/2012/05.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=05 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(05) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/06.mdwn b/doc/design/assistant/blog/archives/2012/06.mdwn deleted file mode 100644 index 2c80aff30..000000000 --- a/doc/design/assistant/blog/archives/2012/06.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=06 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(06) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/07.mdwn b/doc/design/assistant/blog/archives/2012/07.mdwn deleted file mode 100644 index 31b2727b2..000000000 --- a/doc/design/assistant/blog/archives/2012/07.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=07 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(07) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/08.mdwn b/doc/design/assistant/blog/archives/2012/08.mdwn deleted file mode 100644 index 46f6a31bb..000000000 --- a/doc/design/assistant/blog/archives/2012/08.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=08 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(08) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/09.mdwn b/doc/design/assistant/blog/archives/2012/09.mdwn deleted file mode 100644 index aa9dab32c..000000000 --- a/doc/design/assistant/blog/archives/2012/09.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=09 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(09) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/10.mdwn b/doc/design/assistant/blog/archives/2012/10.mdwn deleted file mode 100644 index 14988c63f..000000000 --- a/doc/design/assistant/blog/archives/2012/10.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=10 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(10) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/11.mdwn b/doc/design/assistant/blog/archives/2012/11.mdwn deleted file mode 100644 index 65e4c8aa8..000000000 --- a/doc/design/assistant/blog/archives/2012/11.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=11 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(11) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] diff --git a/doc/design/assistant/blog/archives/2012/12.mdwn b/doc/design/assistant/blog/archives/2012/12.mdwn deleted file mode 100644 index 84f042b5b..000000000 --- a/doc/design/assistant/blog/archives/2012/12.mdwn +++ /dev/null @@ -1,5 +0,0 @@ -[[!sidebar content=""" -[[!calendar type=month month=12 year=2012 pages="page(design/assistant/blog/*)"]] -"""]] - -[[!inline pages="creation_month(12) and creation_year(2012) and page(design/assistant/blog/*)" show=0 feeds=no reverse=yes]] -- cgit v1.2.3 From ae7a5d2e0c3e967ee98cc2c1cc684ee8954162f6 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawkfHTPsiAcHEEN7Xl7WxiZmYq-vX7azxFY" Date: Mon, 17 Dec 2012 14:53:37 +0000 Subject: --- doc/forum/New_user_misunderstandings.mdwn | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 doc/forum/New_user_misunderstandings.mdwn diff --git a/doc/forum/New_user_misunderstandings.mdwn b/doc/forum/New_user_misunderstandings.mdwn new file mode 100644 index 000000000..d1b1df180 --- /dev/null +++ b/doc/forum/New_user_misunderstandings.mdwn @@ -0,0 +1,24 @@ +New user? Can't figure out the basics? Add it here - what you wanted, what you tried. + +#### I wanted to keep track of some files I had all organized in a directory outside of my ~/annex: + + $ cd ~/annex + $ git annex add /path/to/some/photos + fatal: '/path/to/some/photos' is outside repository + + But git-annex doesn't work that way. I had to do this instead + + $ rsync -a /path/to/some/photos + $ git annex add photos + (Recording state in git...) + $ git annex status + ... lots of helpful info... + +#### I just have the OS/X app, can I do commandline stuff? + +yes + + $ /Applications/git-annex.app/Contents/MacOS/git-annex add photos/ + (Recording state in git...) + +but perhaps there is a better way. -- cgit v1.2.3 From 5da0b648e687c4fa6b1117d62532759fca0e87c1 Mon Sep 17 00:00:00 2001 From: "https://www.google.com/accounts/o8/id?id=AItOawmYiJgOvC4IDYkr2KIjMlfVD9r_1Sij_jY" Date: Mon, 17 Dec 2012 16:07:42 +0000 Subject: Added a comment: OSX troubles --- .../comment_1_46863a875f9daa6f2c9248b66ff91929._comment | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/design/assistant/blog/day_152__bugfixes/comment_1_46863a875f9daa6f2c9248b66ff91929._comment diff --git a/doc/design/assistant/blog/day_152__bugfixes/comment_1_46863a875f9daa6f2c9248b66ff91929._comment b/doc/design/assistant/blog/day_152__bugfixes/comment_1_46863a875f9daa6f2c9248b66ff91929._comment new file mode 100644 index 000000000..9199f3768 --- /dev/null +++ b/doc/design/assistant/blog/day_152__bugfixes/comment_1_46863a875f9daa6f2c9248b66ff91929._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="https://www.google.com/accounts/o8/id?id=AItOawmYiJgOvC4IDYkr2KIjMlfVD9r_1Sij_jY" + nickname="Douglas" + subject="OSX troubles" + date="2012-12-17T16:07:41Z" + content=""" +Have you considered making a homebrew installable version of git-annex? It may make things easier for you when it comes to build dependencies. + +"""]] -- cgit v1.2.3 From cf2e26e3a022d77f76d0826d727cdeaf76cfd273 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Mon, 17 Dec 2012 16:16:47 +0000 Subject: Added a comment --- .../comment_2_a586e617bc024c8a9ff60f1b8345d74d._comment | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 doc/design/assistant/blog/day_152__bugfixes/comment_2_a586e617bc024c8a9ff60f1b8345d74d._comment diff --git a/doc/design/assistant/blog/day_152__bugfixes/comment_2_a586e617bc024c8a9ff60f1b8345d74d._comment b/doc/design/assistant/blog/day_152__bugfixes/comment_2_a586e617bc024c8a9ff60f1b8345d74d._comment new file mode 100644 index 000000000..af7a901a9 --- /dev/null +++ b/doc/design/assistant/blog/day_152__bugfixes/comment_2_a586e617bc024c8a9ff60f1b8345d74d._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 2" + date="2012-12-17T16:16:47Z" + content=""" +I would *love* *love* *love* for there to be a homebrew for git-annex. But I know nothing about homebrew so am not in a very good position to do it. +"""]] -- cgit v1.2.3 From 7d4b7ba77f88e1b85a7e4d11dbf4a2995aacc43d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 17 Dec 2012 12:20:44 -0400 Subject: back to $SHELL for OSX app This is safe because we no longer mess with LD_PRELOAD equivilants. Since the linux standalone bundle still does, it continues to run sh. --- standalone/osx/git-annex.app/Contents/MacOS/runshell | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/standalone/osx/git-annex.app/Contents/MacOS/runshell b/standalone/osx/git-annex.app/Contents/MacOS/runshell index bdeee6d97..211f174fc 100755 --- a/standalone/osx/git-annex.app/Contents/MacOS/runshell +++ b/standalone/osx/git-annex.app/Contents/MacOS/runshell @@ -65,5 +65,5 @@ if [ "$1" ]; then shift 1 exec "$cmd" "$@" else - sh + $SHELL fi -- cgit v1.2.3 From d0ce9132351344e81160c96cda955961f4094c16 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Mon, 17 Dec 2012 16:21:37 +0000 Subject: Added a comment --- .../comment_1_c1785924109b5d5cde9aa3d3460cf955._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/New_user_misunderstandings/comment_1_c1785924109b5d5cde9aa3d3460cf955._comment diff --git a/doc/forum/New_user_misunderstandings/comment_1_c1785924109b5d5cde9aa3d3460cf955._comment b/doc/forum/New_user_misunderstandings/comment_1_c1785924109b5d5cde9aa3d3460cf955._comment new file mode 100644 index 000000000..b15f5cfb7 --- /dev/null +++ b/doc/forum/New_user_misunderstandings/comment_1_c1785924109b5d5cde9aa3d3460cf955._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 1" + date="2012-12-17T16:21:36Z" + content=""" +For importing your photos, you can use `git annex import /path/to/some/photos` .. this will move them from the given location into the current directory, and add them to the annex. It preserves subdirectory structure too. + +For using the OSX app at the command line, the only thing that is guaranteed to work properly is to run `/Applications/git-annex.app/Contents/MacOS/runshell`, which will modify your PATH and other environment appropriately. +"""]] -- cgit v1.2.3 From 2a82d958f7400966bc22adc2eee3157b588902c8 Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Mon, 17 Dec 2012 16:23:06 +0000 Subject: Added a comment --- .../comment_20_43bd5985d8a3a5e7f826a34e5dd9216e._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/bugs/OSX_app_issues/comment_20_43bd5985d8a3a5e7f826a34e5dd9216e._comment diff --git a/doc/bugs/OSX_app_issues/comment_20_43bd5985d8a3a5e7f826a34e5dd9216e._comment b/doc/bugs/OSX_app_issues/comment_20_43bd5985d8a3a5e7f826a34e5dd9216e._comment new file mode 100644 index 000000000..8e01d948e --- /dev/null +++ b/doc/bugs/OSX_app_issues/comment_20_43bd5985d8a3a5e7f826a34e5dd9216e._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 20" + date="2012-12-17T16:23:05Z" + content=""" +@Vincent OMG, it works!?! + +\o/ +"""]] -- cgit v1.2.3 From 4e606fa01bb9e5b56bbddbdabbd3312a5f0840ac Mon Sep 17 00:00:00 2001 From: "http://joeyh.name/" Date: Mon, 17 Dec 2012 16:32:31 +0000 Subject: Added a comment --- .../comment_3_286b502e7906cca50e9e747db735bc88._comment | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 doc/forum/Storing_uncontrolled_files_in_an_annex/comment_3_286b502e7906cca50e9e747db735bc88._comment diff --git a/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_3_286b502e7906cca50e9e747db735bc88._comment b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_3_286b502e7906cca50e9e747db735bc88._comment new file mode 100644 index 000000000..f23854cbf --- /dev/null +++ b/doc/forum/Storing_uncontrolled_files_in_an_annex/comment_3_286b502e7906cca50e9e747db735bc88._comment @@ -0,0 +1,10 @@ +[[!comment format=mdwn + username="http://joeyh.name/" + ip="4.153.8.117" + subject="comment 3" + date="2012-12-17T16:32:31Z" + content=""" +AFAIK, the assistant does *not* currently honor .gitgnore completely. There are parts of it that do, and places where running git commands to check .gitignore would be very expensive, and so I've TODOed it for later, as I'll need to write my own .gitignore parser. + +So, use caution.. +"""]] -- cgit v1.2.3 From 8ee8d3ccdf676efa9f588d374c1b273ec5e4bafe Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 17 Dec 2012 12:43:08 -0400 Subject: move tip from forum to tips --- ...oactively_annex_a_file_already_in_a_git_repo.mdwn | 20 +++----------------- ...mment_1_7eaf73fb3355bd706ab18a43790b3c10._comment | 8 -------- ...oactively_annex_a_file_already_in_a_git_repo.mdwn | 19 +++++++++++++++++++ ...mment_1_7eaf73fb3355bd706ab18a43790b3c10._comment | 8 ++++++++ 4 files changed, 30 insertions(+), 25 deletions(-) delete mode 100644 doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment create mode 100644 doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn create mode 100644 doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment diff --git a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn index 97f5828d3..981a53ba0 100644 --- a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn +++ b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn @@ -1,19 +1,5 @@ I worked out how to retroactively annex a large file that had been checked into a git repo some time ago. I thought this might be useful for others, so I am posting it here. -Suppose you have a git repo where somebody had checked in a large file you would like to have annexed, but there are a bunch of commits after it and you don't want to loose history, but you also don't want everybody to have to retrieve the large file when they clone the repo. This will re-write history as if the file had been annexed when it was originally added. - -This command works for me, it relies on the current behavior of git which is to use a directory named .git-rewrite/t/ at the top of the git tree for the extracted tree. This will not be fast and it will rewrite history, so be sure that everybody who has a copy of your repo is OK with accepting the new history. If the behavior of git changes, you can specify the directory to use with the -d option. Currently, the t/ directory is created inside the directory you specify, so "-d ./.git-rewrite/" should be roughly equivalent to the default. - -Enough with the explanation, on to the command: -
-git filter-branch --tree-filter 'for FILE in file1 file2 file3;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
-
- -replace file1 file2 file3... with whatever paths you want retroactively annexed. If you wanted bigfile1.bin in the top dir and subdir1/bigfile2.bin to be retroactively annexed try: -
-git filter-branch --tree-filter 'for FILE in bigfile1.bin subdir1/bigfile2.bin;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
-
- -**If your repo has tags** then you should take a look at the git-filter-branch man page about the --tag-name-filter option and decide what you want to do. By default this will re-write the tags "nearly properly". - -You'll probably also want to look at the git-filter-branch man page's section titled "CHECKLIST FOR SHRINKING A REPOSITORY" if you want to free up the space in the existing repo that you just changed history on. +> This is a great tip, so I've moved it to +> [[tips|tips/How_to_retroactively_annex_a_file_already_in_a_git_repo]]. +> --[[Joey]] diff --git a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment b/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment deleted file mode 100644 index d4e34e8cd..000000000 --- a/doc/forum/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment +++ /dev/null @@ -1,8 +0,0 @@ -[[!comment format=mdwn - username="http://edheil.wordpress.com/" - ip="173.162.44.162" - subject="comment 1" - date="2012-12-16T00:11:38Z" - content=""" -Man, I wish you'd written this a couple weeks ago. :) I was never able to figure that incantation out and ended up unannexing and re-annexing the whole thing to get rid of the file I inadvertently checked into git instead of the annex. -"""]] diff --git a/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn b/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn new file mode 100644 index 000000000..97f5828d3 --- /dev/null +++ b/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo.mdwn @@ -0,0 +1,19 @@ +I worked out how to retroactively annex a large file that had been checked into a git repo some time ago. I thought this might be useful for others, so I am posting it here. + +Suppose you have a git repo where somebody had checked in a large file you would like to have annexed, but there are a bunch of commits after it and you don't want to loose history, but you also don't want everybody to have to retrieve the large file when they clone the repo. This will re-write history as if the file had been annexed when it was originally added. + +This command works for me, it relies on the current behavior of git which is to use a directory named .git-rewrite/t/ at the top of the git tree for the extracted tree. This will not be fast and it will rewrite history, so be sure that everybody who has a copy of your repo is OK with accepting the new history. If the behavior of git changes, you can specify the directory to use with the -d option. Currently, the t/ directory is created inside the directory you specify, so "-d ./.git-rewrite/" should be roughly equivalent to the default. + +Enough with the explanation, on to the command: +
+git filter-branch --tree-filter 'for FILE in file1 file2 file3;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
+
+ +replace file1 file2 file3... with whatever paths you want retroactively annexed. If you wanted bigfile1.bin in the top dir and subdir1/bigfile2.bin to be retroactively annexed try: +
+git filter-branch --tree-filter 'for FILE in bigfile1.bin subdir1/bigfile2.bin;do if [ -f "$FILE" ] && [ ! -L "$FILE" ];then git rm --cached "$FILE";git annex add "$FILE";ln -sf `readlink "$FILE"|sed -e "s:^../../::"` "$FILE";fi;done' --tag-name-filter cat -- --all
+
+ +**If your repo has tags** then you should take a look at the git-filter-branch man page about the --tag-name-filter option and decide what you want to do. By default this will re-write the tags "nearly properly". + +You'll probably also want to look at the git-filter-branch man page's section titled "CHECKLIST FOR SHRINKING A REPOSITORY" if you want to free up the space in the existing repo that you just changed history on. diff --git a/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment b/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment new file mode 100644 index 000000000..d4e34e8cd --- /dev/null +++ b/doc/tips/How_to_retroactively_annex_a_file_already_in_a_git_repo/comment_1_7eaf73fb3355bd706ab18a43790b3c10._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://edheil.wordpress.com/" + ip="173.162.44.162" + subject="comment 1" + date="2012-12-16T00:11:38Z" + content=""" +Man, I wish you'd written this a couple weeks ago. :) I was never able to figure that incantation out and ended up unannexing and re-annexing the whole thing to get rid of the file I inadvertently checked into git instead of the annex. +"""]] -- cgit v1.2.3 From 08ebc42bcdb24f6e4c0e99fc011fab6d84a34dac Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 17 Dec 2012 12:59:18 -0400 Subject: OSX Mountian Lion builds now available --- doc/install.mdwn | 2 +- doc/install/OSX.mdwn | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/doc/install.mdwn b/doc/install.mdwn index 837345505..8a3091d8b 100644 --- a/doc/install.mdwn +++ b/doc/install.mdwn @@ -2,7 +2,7 @@ [[!table format=dsv header=yes data=""" detailed instructions | quick install -[[OSX]] | [download git-annex.app](http://downloads.kitenet.net/git-annex/OSX/git-annex.dmg.bz2) **beta; [[known_problems|/bugs/OSX_app_issues]]** +[[OSX]] | [download git-annex.app](http://downloads.kitenet.net/git-annex/OSX/current/) [[Linux|linux_standalone]] | [download prebuilt linux tarball](http://downloads.kitenet.net/git-annex/linux/) [[Debian]] | `apt-get install git-annex` [[Ubuntu]] | `apt-get install git-annex` diff --git a/doc/install/OSX.mdwn b/doc/install/OSX.mdwn index b91f8353b..795986176 100644 --- a/doc/install/OSX.mdwn +++ b/doc/install/OSX.mdwn @@ -1,13 +1,20 @@ ## git-annex.app -For easy installation, [Jimmy Tang](http://www.sgenomics.org/~jtang/) -builds a standalone git-annex.app of the git-annex assistant. +For easy installation, use the +[beta release of git-annex.app](http://downloads.kitenet.net/git-annex/OSX/current/). -* [beta release of git-annex.app](http://downloads.kitenet.net/git-annex/OSX/git-annex.dmg.bz2) -* [daily build of git-annex.app](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/ref/master/git-annex.dmg.bz2) ([build logs](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/)) - * [past builds](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/sha1/) -- directories are named from the commitid's +Be sure to select the build matching your version of OSX. + +This is still a work in progress. See [[/bugs/OSX_app_issues]] for problem +reports. + +## autobuilds -This is known to not work on all OSX systems. [[/bugs/OSX_app_issues]] is collecting reports of problems with it in one place. +[Jimmy Tang](http://www.sgenomics.org/~jtang/) autobuilds +the app. These autobuilds only work on OSX Lion, not Mountain Lion. + +* [autobuild of git-annex.app](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/ref/master/git-annex.dmg.bz2) ([build logs](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/)) + * [past builds](http://www.sgenomics.org/~jtang/gitbuilder-git-annex-x00-x86_64-apple-darwin10.8.0-binary/sha1/) -- directories are named from the commitid's ## using Brew -- cgit v1.2.3 From 922e0d2c13d2c9105beeb18fe4eeb90dbddea76c Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 17 Dec 2012 13:03:49 -0400 Subject: close fixed OSX issues --- doc/bugs/OSX_git-annex.app_error:__LSOpenURLsWithRole__40____41__.mdwn | 2 ++ doc/bugs/gpg_bundled_with_OSX_build_fails.mdwn | 3 +++ 2 files changed, 5 insertions(+) diff --git a/doc/bugs/OSX_git-annex.app_error:__LSOpenURLsWithRole__40____41__.mdwn b/doc/bugs/OSX_git-annex.app_error:__LSOpenURLsWithRole__40____41__.mdwn index 14b896e32..ac5c66951 100644 --- a/doc/bugs/OSX_git-annex.app_error:__LSOpenURLsWithRole__40____41__.mdwn +++ b/doc/bugs/OSX_git-annex.app_error:__LSOpenURLsWithRole__40____41__.mdwn @@ -22,3 +22,5 @@ I'd expect to see git-annex run. "git-annex" doesn't run and what I see (in the **Please provide any additional information below.** [[!tag /design/assistant/OSX]] + +> This was fixed a while ago. [[done]] --[[Joey]] diff --git a/doc/bugs/gpg_bundled_with_OSX_build_fails.mdwn b/doc/bugs/gpg_bundled_with_OSX_build_fails.mdwn index 0d2d2d050..701e67cc5 100644 --- a/doc/bugs/gpg_bundled_with_OSX_build_fails.mdwn +++ b/doc/bugs/gpg_bundled_with_OSX_build_fails.mdwn @@ -20,3 +20,6 @@ What version of git-annex are you using? On what operating system? git annex Version: 3.20121017 on Mac OS X 10.7.5 [[!tag /design/assistant/OSX]] + +> Libraries are now handled better in the OSX app and this should be able +> to happen anymore. [[done]] --[[Joey]] -- cgit v1.2.3