summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Added a commentGravatar http://joeyh.name/2013-02-19
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-18
|\
| * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawl2Jj8q2upJL4ZQAc2lp7ugTxJiGtcICv82013-02-19
| |
* | Merge remote-tracking branch 'origin/master'Gravatar Joey Hess2013-02-18
|\|
* | an idea from australiaGravatar Joey Hess2013-02-18
| |
| * Added a comment: safe and unsafe commandsGravatar http://joeyh.name/2013-02-19
| |
* | webapp: Can now add a new local repository, and make it sync with the main ↵Gravatar Joey Hess2013-02-18
|/ | | | local repository.
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-18
|\
| * Added a commentGravatar https://www.google.com/accounts/o8/id?id=AItOawl2Jj8q2upJL4ZQAc2lp7ugTxJiGtcICv82013-02-18
| |
* | Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-18
|\|
* | add openssh to AndroidGravatar Joey Hess2013-02-18
| | | | | | | | | | This build still needs some work to look in $HOME/.ssh rather than relying on pwent info.
* | set fileEncoding on the off chance lsof outputs binary garbageGravatar Joey Hess2013-02-18
| |
* | set fileSystemEncoding when reading files that might be binaryGravatar Joey Hess2013-02-18
| |
| * poll vote (I haven't always well understood the differences between ↵Gravatar 109.90.6.1402013-02-18
| | | | | | | | 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. :))
* | closeGravatar Joey Hess2013-02-18
| |
* | Merge remote-tracking branch 'origin/master'Gravatar Joey Hess2013-02-18
|\|
* | avoid writing pre-commit hook if we cannot make it executableGravatar Joey Hess2013-02-18
| |
* | add busybox config file so I can edit it easilyGravatar Joey Hess2013-02-18
| |
* | updateGravatar Joey Hess2013-02-18
| |
* | updateGravatar Joey Hess2013-02-18
| |
* | fix enabling of busybox installerGravatar Joey Hess2013-02-18
| |
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawkGCmVc5qIJaQQgG82Hc5zzBdAVdhe2JEM2013-02-18
| |
| * (no commit message)Gravatar https://www.google.com/accounts/o8/id?id=AItOawkGCmVc5qIJaQQgG82Hc5zzBdAVdhe2JEM2013-02-18
| |
* | updated hackage version to add missing dependencyGravatar Joey Hess2013-02-18
| |
* | webapp: Allow creating repositories on filesystems that lack support for ↵Gravatar Joey Hess2013-02-18
| | | | | | | | symlinks.
| * poll vote (I need a Windows port)Gravatar 86.6.158.512013-02-18
| |
| * poll vote (OpenStack SWIFT)Gravatar 69.70.101.1942013-02-18
| |
* | hlintGravatar Joey Hess2013-02-18
| |
* | typesGravatar Joey Hess2013-02-18
| |
| * Added a comment: phonegap might helpGravatar http://jasonwoof.com/2013-02-17
|/
* add randomGravatar Joey Hess2013-02-17
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-17
|\
* | blog for the dayGravatar Joey Hess2013-02-17
| |
* | fully support core.symlinks=false in all relevant symlink handling codeGravatar Joey Hess2013-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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!!
| * poll vote (An Ubuntu PPA would be supercool! Thanks for your great work!!)Gravatar 128.32.34.642013-02-17
| |
| * (no commit message)Gravatar http://edheil.wordpress.com/2013-02-17
| |
| * (no commit message)Gravatar annexuser2013-02-16
| |
| * Added a comment: more homebrewGravatar https://www.google.com/accounts/o8/id?id=AItOawmCmNS-oUgYfNg85-LPuxzTZJUp0sIgprM2013-02-16
|/
* build fixesGravatar Joey Hess2013-02-16
|
* add news item for git-annex 3.20130216Gravatar Joey Hess2013-02-16
|
* document release3.20130216Gravatar Joey Hess2013-02-16
|
* phony standaloneGravatar Joey Hess2013-02-16
|
* deal with Glob/filemanip conflictGravatar Joey Hess2013-02-16
|
* prep releaseGravatar Joey Hess2013-02-16
|
* poll vote (My phone (or MP3 player))Gravatar 79.224.245.362013-02-16
|
* updateGravatar Joey Hess2013-02-15
|
* blog for the looooong dayGravatar Joey Hess2013-02-15
|
* switch to direct mode when auto-enablingGravatar Joey Hess2013-02-15
| | | | | Gets the direct mode mapping set up correctly. Maybe other stuff, but probably not, since this is probably a new repo.
* proper fix for dropunusedGravatar Joey Hess2013-02-15
| | | | | | | | | | Now getKeysPresent checks that the key's content, not only its directory, exists. In direct mode, the inode cache file is used as a standin for the content. removeAnnex always removes the inode cache file, and drop and move --from always call removeAnnex, even if the object does not seem to be inAnnex, to ensure it's always deleted.
* update for reversionGravatar Joey Hess2013-02-15
|