Merge remote-tracking branch 'branchable/master'

This commit is contained in:
Joey Hess 2011-03-20 18:12:01 -04:00
commit 02c3f3880b
3 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,34 @@
[[!comment format=mdwn
username="praet"
ip="81.240.27.89"
subject="Brainfart"
date="2011-03-20T20:11:27Z"
content="""
Haven't given these any serious thought (which will become apparent in a moment) but hoping they will give birth to some less retarded ideas:
---
### Bait'n'switch
- pre-commit: Replace all staged symlinks (when pointing to annexed files) with plaintext files containing the key of their respective annexed content, re-stage, and add their paths (relative to repo root) to .gitignore.
- post-commit: Replace the plaintext files with (git annex fix'ed) symlinks.
In doing so, the blobs to be committed can remain unaltered, irrespective of their related files' depth in the directory hierarchy.
To prevent git from reporting ALL annexed files as unstaged changes after running post-commit hook, their paths would need to be added to .gitignore.
This wouldn't cause any issues when adding files, very little when modifying files (would need some alterations to \"git annex unlock\"), BUT would make git totally oblivious to removals...
---
### Manifest-based (re)population
- Keep a manifest of all annexed files (key + relative path)
- DON'T track the symlinks (.gitignore)
- Populate/update the directory structure using a post-commit hook.
... thus circumventing the issue entirely, yet diffstats (et al.) would be rather uninformative.
---
***Wide open to suggestions, criticism, mocking laughter and finger-pointing :)***
"""]]

View file

@ -0,0 +1,42 @@
[[!comment format=mdwn
username="https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus"
nickname="Jimmy"
subject="comment 6"
date="2011-03-20T20:48:41Z"
content="""
ok, pulling the latest master and building on OSX now does this...
<pre>
ghc -O2 -Wall -ignore-package monads-fd --make git-annex
[ 1 of 63] Compiling Touch ( Touch.hs, Touch.o )
Touch.hsc:24:0:
The type signature for `touchBoth' lacks an accompanying binding
Touch.hsc:27:26: Not in scope: `touchBoth'
make: *** [git-annex] Error 1
</pre>
changing the #if 0 to 1 gives this...
<pre>
ghc -O2 -Wall -ignore-package monads-fd --make git-annex
[ 1 of 63] Compiling Touch ( Touch.hs, Touch.o )
Touch.hsc:95:43:
Couldn't match expected type `CLong' against inferred type `CTime'
In the second argument of `(\ hsc_ptr
-> pokeByteOff hsc_ptr 0)', namely
`(sec :: CLong)'
In a stmt of a 'do' expression:
(\ hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (sec :: CLong)
In the expression:
do { (\ hsc_ptr -> pokeByteOff hsc_ptr 0) ptr (sec :: CLong);
(\ hsc_ptr -> pokeByteOff hsc_ptr 4) ptr (0 :: CLong) }
make: *** [git-annex] Error 1
</pre>
it seems that commit 6634b6a6b84a924f6f6059b5bea61f449d056eee has broken support for OSX.
"""]]

View file

@ -0,0 +1,8 @@
[[!comment format=mdwn
username="http://joey.kitenet.net/"
nickname="joey"
subject="comment 7"
date="2011-03-20T22:06:25Z"
content="""
Fixed that, and removed the impossible cast so it can be built with #if 1
"""]]