Commit graph

4123 commits

Author SHA1 Message Date
Joey Hess
aae0ba1995 fixed the double commits problem 2012-06-10 18:41:05 -04:00
Joey Hess
fc0dd79774 avoid running pre-commit hook from watch commits 2012-06-10 17:53:17 -04:00
Joey Hess
cda6c4dff5 tweak 2012-06-10 17:40:35 -04:00
Joey Hess
f4aacd5c86 update 2012-06-10 16:49:36 -04:00
Joey Hess
39b9aaa7a9 typo 2012-06-10 16:44:22 -04:00
Joey Hess
a0e29b214f blog for the day 2012-06-10 16:33:42 -04:00
Joey Hess
7201d7835c Merge branch 'master' into watch 2012-06-10 16:13:23 -04:00
Joey Hess
2de50f733a smart commit thread
The commit thread now has access to a channel containing the times of
all uncommitted changes. This lets it be smart about detecting busy times
when a batch job is running (such as rm -rf, or untarring something, etc),
and avoid committing until it's done. While at the same time, instantly
committing one-off changes that the user is going to expect to see
immediately.

I had to use STM to implement the channel, because of
http://hackage.haskell.org/trac/ghc/ticket/4154
While this adds a dependency, I always wanted to use STM, so this actually
makes me happy. ;)

Also happy that shouldCommit is a pure function, so other commit smartness
strategies can easily be played with. Although the current one seems pretty
good.

There is one bug, for some reason it does double commits, every time.
2012-06-10 16:07:48 -04:00
Joey Hess
6e54907e35 add a thread to commit changes
Currently the stupidest possible version, just wakes up every second,
and may make empty commits sometimes.
2012-06-10 13:56:39 -04:00
Joey Hess
c5707c84d3 queue size fix
Increase queue size for update-index actions, because otherwise they'll
never be flushed.
2012-06-10 13:56:04 -04:00
Joey Hess
e5f855b7f8 generalize and improve state MVar code 2012-06-10 13:23:10 -04:00
Joey Hess
5308b51ec0 stage deletions directly using update-index
no need to run git-rm separately
2012-06-10 13:05:58 -04:00
Joey Hess
7f39415600 force thunk for precalculated value 2012-06-10 12:50:15 -04:00
Sergei Trofimovich
3bb58afd59 Makefile: ignore monads-tf in favour of mtl
Fixes build breakage when both 'mtl' and 'monads-tf' are present:
$ make git-annex
> ghc -O2 -Wall -ignore-package monads-fd -outputdir tmp -IUtility -DWITH_S3 --make git-annex Utility/libdiskfree.o
>
> Common.hs:6:8:
>    Ambiguous module name `Control.Monad.State.Strict':
>      it was found in multiple packages: monads-tf-0.1.0.0 mtl-2.1.1
> make: *** [git-annex] Error 1

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
2012-06-10 12:11:30 -04:00
Nathan Collins
d76afc8152 Replace indentation spaces by tabs in Setup.hs. 2012-06-10 02:21:13 -07:00
Nathan Collins
4453351ca4 Add a .dir-locals.el that configures emacs' treatment of tabs.
The Haskell code uses tabs for indentation, and displays well with
tab-width set to 2.  So, I created a .dir-locals.el (applies to all
files opened in emacs at or below ./), which sets 'tab-width' to 2,
turns on 'indent-tabs-mode', and highlights leading spaces in
'haskell-mode'.
2012-06-10 02:11:40 -07:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
3d6dc33563 2012-06-10 09:03:28 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
ba62741e5a 2012-06-10 08:58:48 +00:00
Nathan Collins
6c8507ee1b Combine post install commands in 'postInst' and add 'postCopy' hook.
The creation of the 'git-annex-shell' symlink was in 'postInst' hook.
I combined it with the man-page installation in a 'postInst' hook and
a 'postCopy' hook.  I don't understand how to use the `cabal copy`
command, but the examples I looked at defined both hooks.

Relevant comments from the source:

* man-page installation:

  See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages.

  Based on pandoc's and lhs2tex's 'Setup.installManpages' and
  'postInst' hooks.

  My understanding: 'postCopy' is run for `cabal copy`, 'postInst' is
  run for `cabal inst`, and copy is not a generalized install, so you
  have to write two nearly identical hooks.

  Summary of hooks:
  http://www.haskell.org/cabal/release/cabal-latest/doc/API/Cabal/Distribution-Simple-UserHooks.htm--
  Other people are also confused:

  * Bug: 'postCopy' and 'postInst' are confusing:
  http://hackage.haskell.org/trac/hackage/ticket/718

  * A cabal maintainer suggests using 'postCopy' instead of
  'postInst', because `cabal install` is `cabal copy` followed by
  `cabal register`:
  http://www.haskell.org/pipermail/libraries/2008-March/009416.html
  Although that sounds desirable, it's not true, as the reply and
  experiments indicate.

* the `cabal copy` command:

  ???: Not sure how you're supposed to use this.  E.g., when I do

     cabal install --prefix=/tmp/git-annex-install
     cabal copy --deistdir=/tmp/git-annex-copy

  I get the copy under

    /tmp/git-annex-copy/tmp/git-annex-install

  Also, `cabal install` fails when given a relative --prefix.
2012-06-09 23:39:51 -07:00
Nathan Collins
7eb649612a Merge branch 'master' into cabal-man-pages 2012-06-09 20:48:32 -07:00
Nathan Collins
2b29a02285 Make man pages when making sdist. 2012-06-09 20:46:41 -07:00
http://joeyh.name/
6a71a9729f Added a comment 2012-06-09 23:01:29 +00:00
https://www.google.com/accounts/o8/id?id=AItOawldKnauegZulM7X6JoHJs7Gd5PnDjcgx-E
3a213ced1e Added a comment: open source? 2012-06-09 22:34:31 +00:00
Joey Hess
affd52be0e response 2012-06-09 17:07:40 -04:00
http://rmunn.myopenid.com/
6c8f76ca28 New idea: using youtube-dl to download video URLs 2012-06-09 18:54:14 +00:00
http://joeyh.name/
3141c36f2e Added a comment 2012-06-09 18:07:51 +00:00
Joey Hess
7f823b56af fix non-linux build 2012-06-09 14:06:56 -04:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
c388e90dc9 Added a comment 2012-06-08 15:21:21 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
12afa8fb56 Added a comment 2012-06-08 07:22:34 +00:00
Joey Hess
d45a9a7831 refactor and function name cleanup
(oops, I had a calcMerge and a calc_merge!)
2012-06-08 00:29:39 -04:00
Nathan Collins
817a42056b Add note about lhs2tex's man page installation. 2012-06-07 19:01:49 -07:00
http://joeyh.name/
63290903aa Added a comment 2012-06-08 01:56:52 +00:00
Joey Hess
4f6b522d8c update 2012-06-07 21:40:31 -04:00
Joey Hess
109bd9c08b blog for the day 2012-06-07 21:37:59 -04:00
Joey Hess
7d78cbf97c use git queue for rm too 2012-06-07 21:17:10 -04:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
3f03e58dc6 removed 2012-06-07 20:25:14 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
b778b9b345 Added a comment 2012-06-07 20:23:09 +00:00
https://www.google.com/accounts/o8/id?id=AItOawkSq2FDpK2n66QRUxtqqdbyDuwgbQmUWus
021325ce71 Added a comment 2012-06-07 20:22:58 +00:00
Joey Hess
20f425be19 make watch use the queue
May not work. Certianly needs to flush the queue from time to time
when only symlink changes are being made.
2012-06-07 15:40:44 -04:00
Joey Hess
0a11b35d89 extend Git.Queue to be able to queue more than simple git commands
While I was in there, I noticed and fixed a bug in the queue size
calculations. It was never encountered only because Queue.add was
only ever run with 1 file in the list.
2012-06-07 15:19:44 -04:00
Joey Hess
727158ff55 Merge branch 'master' into watch 2012-06-07 13:48:55 -04:00
Joey Hess
4d1c114e4d initremote: Automatically describe a remote when creating it.
This ensures that all special remotes show up in git annex status.
Before, a special remote that was not manually described, and was not
a current git remote, did not show up there, although initremote did list
it.
2012-06-07 11:16:48 -04:00
Joey Hess
8408a91082 fixie 2012-06-07 10:37:06 -04:00
http://joeyh.name/
2478aca3c5 Added a comment 2012-06-07 04:48:15 +00:00
Joey Hess
5d4e09199c update message based on user feedback 2012-06-07 00:47:09 -04:00
https://www.google.com/accounts/o8/id?id=AItOawnBJ6Dv1glxzzi4qIzGFNa6F-mfHIvv9Ck
c7efb2888c Added a comment: Wording 2012-06-07 03:43:19 +00:00
Joey Hess
d5de27ff40 tweak 2012-06-06 23:30:38 -04:00
Joey Hess
c56812980c document watch 2012-06-06 23:28:33 -04:00
Joey Hess
b8ae9528ab refactor 2012-06-06 23:20:09 -04:00
Joey Hess
b8f85f7a82 build watch on non-linux, just don't do anything 2012-06-06 22:49:32 -04:00