Commit graph

8594 commits

Author SHA1 Message Date
Joey Hess
6f9be431e6 only create inode sentinal file when initializing a new repo 2013-02-20 13:55:53 -04:00
Joey Hess
af1da07302 Direct mode: Fix support for adding a modified file.
Adding a file that is already annexed, but has been modified, was broken in
direct mode.

This fix makes the new content be added. It does have the problem that
re-running `git annex add` will checksum and re-add the content repeatedly,
until it's committed. This happens because the key associated with the file
does not change until the new one gets committed, so it keeps thinking the
file has changed.
2013-02-20 13:37:46 -04:00
Joey Hess
2a4dad8bd4 remove debug prints 2013-02-19 23:18:15 -04:00
Joey Hess
e1dba0c3dc avoid trying to use GECOS on Android, which responds with sig11 2013-02-19 18:06:27 -04:00
Joey Hess
56e56d98c7 blog for the day & post I forgot yesterday 2013-02-19 17:35:09 -04:00
Joey Hess
19a56ef297 Merge branch 'master' of ssh://git-annex.branchable.com 2013-02-19 17:31:42 -04:00
Joey Hess
00b465e213 shorter directory to external ssh socket
Before it was too long to be used.
2013-02-19 17:31:08 -04:00
Joey Hess
624e34649f Direct mode: Support filesystems like FAT which can change their inodes each time they are mounted. 2013-02-19 17:31:03 -04:00
https://www.google.com/accounts/o8/id?id=AItOawmcYryijvlF8bJvM_eZNSrUPEkMlxMDGTQ
a5023e8019 Added a comment: Also relevant for machines behind pagekite.net 2013-02-19 20:00:30 +00:00
Joey Hess
0f4cc559a7 Android: Support ssh connection caching. 2013-02-19 14:57:45 -04:00
Joey Hess
4f41bd6ba6 make ssh honour HOME rather than getpwent 2013-02-19 13:08:30 -04:00
2001:980:5b04:1:c85d:d75b:5e7a:c5bf
8c250a261d poll vote (I'm really confused about how to make it sync with a remote NON-bare repository. I'm even afraid to try git remote add, since there is no clear method to completely forget a git-annex remote...) 2013-02-19 16:41:01 +00:00
Joey Hess
655f6dc775 update; add openssh and remove dropbox 2013-02-19 12:15:34 -04:00
https://www.google.com/accounts/o8/id?id=AItOawm5iosFbL2By7UFeViqkc6v-hoAtqILeDA
408d94c134 Added a comment: Two direct mode repository on the same computer 2013-02-19 09:24:22 +00:00
Joey Hess
10a988ec0c thought 2013-02-18 23:07:07 -04:00
http://joeyh.name/
abd33834d9 Added a comment 2013-02-19 03:05:35 +00:00
Joey Hess
2e6ac25bd0 Merge branch 'master' of ssh://git-annex.branchable.com 2013-02-18 23:04:20 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl2Jj8q2upJL4ZQAc2lp7ugTxJiGtcICv8
df3508d8fc Added a comment 2013-02-19 03:03:14 +00:00
Joey Hess
613af60c46 Merge remote-tracking branch 'origin/master' 2013-02-18 23:03:12 -04:00
Joey Hess
b881e99fbf an idea from australia 2013-02-18 23:03:03 -04:00
http://joeyh.name/
b49364e4cc Added a comment: safe and unsafe commands 2013-02-19 02:55:14 +00:00
Joey Hess
e598b78a69 webapp: Can now add a new local repository, and make it sync with the main local repository. 2013-02-18 20:37:26 -04:00
Joey Hess
9b91ea425c Merge branch 'master' of ssh://git-annex.branchable.com 2013-02-18 19:53:22 -04:00
https://www.google.com/accounts/o8/id?id=AItOawl2Jj8q2upJL4ZQAc2lp7ugTxJiGtcICv8
8aabd143ca Added a comment 2013-02-18 23:24:11 +00:00
Joey Hess
f4ab1a2e21 Merge branch 'master' of ssh://git-annex.branchable.com 2013-02-18 18:53:06 -04:00
Joey Hess
aa158a147d blog for the day 2013-02-18 18:52:47 -04:00
Joey Hess
15fd867398 add openssh to Android
This build still needs some work to look in $HOME/.ssh
rather than relying on pwent info.
2013-02-18 18:50:28 -04:00
Joey Hess
eb0e5be62f set fileEncoding on the off chance lsof outputs binary garbage 2013-02-18 17:20:52 -04:00
Joey Hess
d799ef3182 set fileSystemEncoding when reading files that might be binary 2013-02-18 17:19:37 -04:00
109.90.6.140
77dcba88b3 poll vote (I haven't always well understood the differences between commandline operation & the assistant, so the differences would confuse me, and I found the command line more understandable & less scary. Now trying to learn to like & trust the assistant. :)) 2013-02-18 20:53:02 +00:00
Joey Hess
bd99730d77 close 2013-02-18 15:55:18 -04:00
Joey Hess
da6745c7f6 Merge remote-tracking branch 'origin/master' 2013-02-18 15:53:20 -04:00
Joey Hess
2b86dc0271 avoid writing pre-commit hook if we cannot make it executable 2013-02-18 15:52:50 -04:00
Joey Hess
bff6c9f53f add busybox config file so I can edit it easily 2013-02-18 15:43:40 -04:00
Joey Hess
5fe7d2f599 update 2013-02-18 15:41:19 -04:00
Joey Hess
89048e2b34 update 2013-02-18 15:39:55 -04:00
Joey Hess
e80364e19a fix enabling of busybox installer 2013-02-18 15:16:10 -04:00
https://www.google.com/accounts/o8/id?id=AItOawkGCmVc5qIJaQQgG82Hc5zzBdAVdhe2JEM
ba332abd7c 2013-02-18 18:15:29 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkGCmVc5qIJaQQgG82Hc5zzBdAVdhe2JEM
096f7d3dad 2013-02-18 18:13:30 +00:00
Joey Hess
dec8b6ec8c updated hackage version to add missing dependency 2013-02-18 13:33:49 -04:00
Joey Hess
127463e577 webapp: Allow creating repositories on filesystems that lack support for symlinks. 2013-02-18 12:54:41 -04:00
86.6.158.51
410fcaf617 poll vote (I need a Windows port) 2013-02-18 15:14:30 +00:00
69.70.101.194
4ce8d94de9 poll vote (OpenStack SWIFT) 2013-02-18 15:09:02 +00:00
Joey Hess
422dd28f0b hlint 2013-02-18 02:39:40 -04:00
Joey Hess
9aa979edbd types 2013-02-18 02:35:38 -04:00
http://jasonwoof.com/
7f021ecbf5 Added a comment: phonegap might help 2013-02-17 22:43:06 +00:00
Joey Hess
169712fc9a add random 2013-02-17 17:00:28 -04:00
Joey Hess
357cfa5071 Merge branch 'master' of ssh://git-annex.branchable.com 2013-02-17 16:59:37 -04:00
Joey Hess
151ea3c68a blog for the day 2013-02-17 16:59:09 -04:00
Joey Hess
d7c93b8913 fully support core.symlinks=false in all relevant symlink handling code
Refactored annex link code into nice clean new library.

Audited and dealt with calls to createSymbolicLink.
Remaining calls are all safe, because:

Annex/Link.hs:  ( liftIO $ createSymbolicLink linktarget file
  only when core.symlinks=true
Assistant/WebApp/Configurators/Local.hs:                createSymbolicLink link link
  test if symlinks can be made
Command/Fix.hs: liftIO $ createSymbolicLink link file
  command only works in indirect mode
Command/FromKey.hs:     liftIO $ createSymbolicLink link file
  command only works in indirect mode
Command/Indirect.hs:                    liftIO $ createSymbolicLink l f
  refuses to run if core.symlinks=false
Init.hs:                createSymbolicLink f f2
  test if symlinks can be made
Remote/Directory.hs:    go [file] = catchBoolIO $ createSymbolicLink file f >> return True
  fast key linking; catches failure to make symlink and falls back to copy
Remote/Git.hs:          liftIO $ catchBoolIO $ createSymbolicLink loc file >> return True
  ditto
Upgrade/V1.hs:                          liftIO $ createSymbolicLink link f
  v1 repos could not be on a filesystem w/o symlinks

Audited and dealt with calls to readSymbolicLink.
Remaining calls are all safe, because:

Annex/Link.hs:		( liftIO $ catchMaybeIO $ readSymbolicLink file
  only when core.symlinks=true
Assistant/Threads/Watcher.hs:		ifM ((==) (Just link) <$> liftIO (catchMaybeIO $ readSymbolicLink file))
  code that fixes real symlinks when inotify sees them
  It's ok to not fix psdueo-symlinks.
Assistant/Threads/Watcher.hs:		mlink <- liftIO (catchMaybeIO $ readSymbolicLink file)
  ditto
Command/Fix.hs:	stopUnless ((/=) (Just link) <$> liftIO (catchMaybeIO $ readSymbolicLink file)) $ do
  command only works in indirect mode
Upgrade/V1.hs:	getsymlink = takeFileName <$> readSymbolicLink file
  v1 repos could not be on a filesystem w/o symlinks

Audited and dealt with calls to isSymbolicLink.
(Typically used with getSymbolicLinkStatus, but that is just used because
getFileStatus is not as robust; it also works on pseudolinks.)
Remaining calls are all safe, because:

Assistant/Threads/SanityChecker.hs:                             | isSymbolicLink s -> addsymlink file ms
  only handles staging of symlinks that were somehow not staged
  (might need to be updated to support pseudolinks, but this is
  only a belt-and-suspenders check anyway, and I've never seen the code run)
Command/Add.hs:         if isSymbolicLink s || not (isRegularFile s)
  avoids adding symlinks to the annex, so not relevant
Command/Indirect.hs:                            | isSymbolicLink s -> void $ flip whenAnnexed f $
  only allowed on systems that support symlinks
Command/Indirect.hs:            whenM (liftIO $ not . isSymbolicLink <$> getSymbolicLinkStatus f) $ do
  ditto
Seek.hs:notSymlink f = liftIO $ not . isSymbolicLink <$> getSymbolicLinkStatus f
  used to find unlocked files, only relevant in indirect mode
Utility/FSEvents.hs:                    | Files.isSymbolicLink s = runhook addSymlinkHook $ Just s
Utility/FSEvents.hs:                                            | Files.isSymbolicLink s ->
Utility/INotify.hs:                             | Files.isSymbolicLink s ->
Utility/INotify.hs:                     checkfiletype Files.isSymbolicLink addSymlinkHook f
Utility/Kqueue.hs:              | Files.isSymbolicLink s = callhook addSymlinkHook (Just s) change
  all above are lower-level, not relevant

Audited and dealt with calls to isSymLink.
Remaining calls are all safe, because:

Annex/Direct.hs:			| isSymLink (getmode item) =
  This is looking at git diff-tree objects, not files on disk
Command/Unused.hs:		| isSymLink (LsTree.mode l) = do
  This is looking at git ls-tree, not file on disk
Utility/FileMode.hs:isSymLink :: FileMode -> Bool
Utility/FileMode.hs:isSymLink = checkMode symbolicLinkMode
  low-level

Done!!
2013-02-17 16:43:14 -04:00