aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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
|
* 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.
* hlintGravatar Joey Hess2013-02-18
|
* typesGravatar Joey Hess2013-02-18
|
* 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
|
* Revert "Clean up direct mode cache and mapping info when dropping keys."Gravatar Joey Hess2013-02-15
| | | | | | | | | This reverts commit f797939d15a2b414e62b28ccb0bd9e5b77978d76. This was buggy, it caused the direct mode cache to be lost when dropping keys, so when the file is gotten back, it's stored in indirect mode. Note to self: Do not attempt bug fixes at 6 am!
* fixed test suite build after recent changes broke itGravatar Joey Hess2013-02-15
|
* start to support core.symlinks=falseGravatar Joey Hess2013-02-15
| | | | | Utility functions to handle no symlink mode, and converted Annex.Content to use them; still many other places to convert.
* updateGravatar Joey Hess2013-02-15
|
* don't allow setting indirect mode on a crippled filesystemGravatar Joey Hess2013-02-15
|
* improveGravatar Joey Hess2013-02-15
|
* migrate, rekey: copy rather than hard linking in crippled filesystem modeGravatar Joey Hess2013-02-15
|
* build fixGravatar Joey Hess2013-02-15
|
* optimise sending to encrypted rsyncGravatar Joey Hess2013-02-15
| | | | | | With an encrypted rsync remote, the encrpyted file can be renamed, rather than being copied, in crippled filesystem mode. This gets back to just as fast as non-crippled mode for this very common case.
* rsync special remote support for crippled filesystem modeGravatar Joey Hess2013-02-15
| | | | | | | | | | Cannot make a hard link, have to copy. I did find a way to make it work without setting up a tree, just using --include and --exclude. But it needs the same hash directories to be used on both sides, which is normally not the case. Still, I hope one day I will convert non-bare repos to use the same hash dirs as everything else, and then this will get more efficient.
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-15
|\
* | fix assistant's use of lsof in crippled filesystem modeGravatar Joey Hess2013-02-15
| |
* | avoid warningGravatar Joey Hess2013-02-15
| |
* | little xargs eqivilant as a pure functionGravatar Joey Hess2013-02-15
| |
| * Added a commentGravatar http://nullroute.eu.org/~grawity/2013-02-15
|/
* fixedGravatar Joey Hess2013-02-14
|
* fixedGravatar Joey Hess2013-02-14
|
* add standalone targetGravatar Joey Hess2013-02-14
|
* Merge branch 'master' of ssh://git-annex.branchable.comGravatar Joey Hess2013-02-14
|\
* | blog for the dayGravatar Joey Hess2013-02-14
| |
* | add: Improved detection of files that are modified while being added.Gravatar Joey Hess2013-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | In indirect mode, now checks the inode cache to detect changes to a file. Note that a file can still be changed if a process has it open for write, after landing in the annex. In direct mode, some checking of the inode cache was done before, but from a much later point, so fewer modifications could be detected. Now it's as good as indirect mode. On crippled filesystems, no lock down is done before starting to add a file, so checking the inode cache is the only protection we have.
* | split out Utility.InodeCacheGravatar Joey Hess2013-02-14
| |