Commit graph

76 commits

Author SHA1 Message Date
Joey Hess
067aabdd48
wip RawFilePath 2x git-annex find speedup
Finally builds (oh the agoncy of making it build), but still very
unmergable, only Command.Find is included and lots of stuff is badly
hacked to make it compile.

Benchmarking vs master, this git-annex find is significantly faster!
Specifically:

	num files	old	new	speedup
	48500		4.77	3.73	28%
	12500		1.36	1.02	66%
	20		0.075	0.074	0% (so startup time is unchanged)

That's without really finishing the optimization. Things still to do:

* Eliminate all the fromRawFilePath, toRawFilePath, encodeBS,
  decodeBS conversions.
* Use versions of IO actions like getFileStatus that take a RawFilePath.
* Eliminate some Data.ByteString.Lazy.toStrict, which is a slow copy.
* Use ByteString for parsing git config to speed up startup.

It's likely several of those will speed up git-annex find further.
And other commands will certianly benefit even more.
2019-11-26 16:01:58 -04:00
Joey Hess
40ecf58d4b
update licenses from GPL to AGPL
This does not change the overall license of the git-annex program, which
was already AGPL due to a number of sources files being AGPL already.

Legally speaking, I'm adding a new license under which these files are
now available; I already released their current contents under the GPL
license. Now they're dual licensed GPL and AGPL. However, I intend
for all my future changes to these files to only be released under the
AGPL license, and I won't be tracking the dual licensing status, so I'm
simply changing the license statement to say it's AGPL.

(In some cases, others wrote parts of the code of a file and released it
under the GPL; but in all cases I have contributed a significant portion
of the code in each file and it's that code that is getting the AGPL
license; the GPL license of other contributors allows combining with
AGPL code.)
2019-03-13 15:48:14 -04:00
Joey Hess
11d6e2e260
new improved benchmark command that can benchmark anything git-annex does 2019-01-04 13:46:36 -04:00
Joey Hess
d0b510ae74
windows build fix 2018-01-09 11:51:17 -04:00
Joey Hess
8484c0c197
Always use filesystem encoding for all file and handle reads and writes.
This is a big scary change. I have convinced myself it should be safe. I
hope!
2016-12-24 14:46:31 -04:00
Joey Hess
070fb9e624
Added git-remote-tor-annex, which allows git pull and push to the tor hidden service.
Almost working, but there's a bug in the relaying.

Also, made tor hidden service setup pick a random port, to make it harder
to port scan.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2016-11-21 17:27:38 -04:00
Joey Hess
730cc3feb5 wire tasty's option parser into the main program option parser
This makes bash completion work for git-annex test, and is
generally cleaner.
2015-07-13 13:20:10 -04:00
Joey Hess
bf9058ac4f Windows: Fix S3 special remote; need to call withSocketsDo to support Windows. Thanks, Trent. 2015-02-05 14:00:30 -04:00
Joey Hess
afc5153157 update my email address and homepage url 2015-01-21 12:50:09 -04:00
Joey Hess
1e59df083d Use haskell setenv library to clean up several ugly workarounds for inability to manipulate the environment on windows.
Didn't know that this library existed!

This includes making git-annex not re-exec itself on start on windows, and
making the test suite on Windows run tests without forking.
2014-10-15 20:33:52 -04:00
Joey Hess
8ef84933fd unset TZ on Windows
TZ gets set when opening a cygwin terminal.

What I'm oberving is strange.. when TZ is set, even if it's set to the same
thing as the system time zone, it seems to result in files showing with
different mtimes than when TZ is not set. When TZ is not set, the system
time zone is used.

Anyway, once getCurrentTimeZone is fixed, I'll want to have TZ not set so
changes to the system time zone are available immediately.
2014-06-12 14:21:53 -04:00
Joey Hess
7bfb815797 fix windows env hack 2014-02-14 14:22:57 -04:00
Joey Hess
d007d1ac0c windows: hack to ensure HOME is always set 2014-02-14 14:03:24 -04:00
Joey Hess
8fdbd1190d avoid git-annex-shell test 2014-02-14 13:39:22 -04:00
Joey Hess
86ffeb73d1 reorganize some files and imports 2014-01-26 16:25:55 -04:00
Joey Hess
d1bf61464f expose tasty test suite's option parser 2014-01-21 00:08:43 -04:00
Joey Hess
8779ad1be9 try building test suite on windows 2013-05-17 16:45:44 -04:00
Joey Hess
abe8d549df fix permission damage (thanks, Windows) 2013-05-11 23:54:25 -04:00
Joey Hess
3c7e30a295 git-annex now builds on Windows (doesn't work) 2013-05-11 15:03:00 -05:00
Joey Hess
47a4843941 typo 2013-02-27 16:33:20 -04:00
Joey Hess
feb5470c0b disable test suite on Android
Cannot get QuickCheck to install just now.
2013-02-27 15:59:31 -04:00
Joey Hess
3a32454b13 break dependency cycle by special casing running of test command 2013-02-27 15:51:28 -04:00
Joey Hess
2172cc586e where indenting 2012-11-11 00:51:07 -04:00
Joey Hess
d2769cf795 shave some 12 mb from the installed size
* git-annex now behaves as git-annex-shell if symlinked to and run by that
  name. The Makefile sets this up, saving some 8 mb of installed size.
* git-union-merge is a demo program, so it is no longer built by default.
2012-03-15 12:00:19 -04:00
Joey Hess
f6063a094e renamed GitRepo to Git
It was always imported qualified as Git anyway
2011-06-30 13:21:39 -04:00
Joey Hess
26544de946 put in utf8 forcing workaround
Haskell's IO layer crashes on characters > 255 when in a non-unicode (latin1)
locale. Until Haskell gets better behavior, put in an admittedly ugly
workaround for that: git-annex forces utf8 output mode no matter what
locale is selected. So if you use a non-utf8 locale, your filenames with
characters > 127 will not be displayed as you'd expect. But at least it
won't crash.
2011-03-08 18:05:20 -04:00
Joey Hess
f189929b8b workaround ghc weirdness with -odir
The option cause it to always build to build/Main.o, no matter what
binary it was building. This caused extra work, and in some cases,
could cause the wrong code to be put into the final binary.
2011-01-07 02:15:23 -04:00
Joey Hess
2533d826fc make test suite link in git-annex's commands and run directly
this way, test coverage works
2011-01-06 20:26:57 -04:00
Joey Hess
60df4e5728 git-annex-shell is complete
still not used
2010-12-31 13:39:43 -04:00
Joey Hess
a5a302b77d git-annex-shell mostly done now, only needs 2 more subcommands 2010-12-30 20:08:22 -04:00
Joey Hess
7a52b34e06 add git-annex-shell command
This is not yet complete, as it does not allow starting rsync or scp.
2010-12-30 16:52:24 -04:00
Joey Hess
88ff9e82fc factor out a little more 2010-12-30 15:44:15 -04:00
Joey Hess
a89a6f2114 refactor in preparation for adding a git-annex-shell command 2010-12-30 15:06:26 -04:00
Joey Hess
2099407d8a Add --exclude option to exclude files from processing.
Required some lifting so flags are evaled in the Annex monad before
file filtering.
2010-12-08 14:07:49 -04:00
Joey Hess
2fba1ba40d Avoid deleting temp files when rsync fails. 2010-12-02 17:51:02 -04:00
Joey Hess
0e55d6a907 move stuff out of Core 2010-11-14 14:44:24 -04:00
Joey Hess
0eae5b806c broke subcommands out into separate modules 2010-11-02 19:04:24 -04:00
Joey Hess
0655ae4b8a move 2010-11-01 03:01:58 -04:00
Joey Hess
00d4c7cd01 simplify evals 2010-10-31 23:24:16 -04:00
Joey Hess
fd6611f955 Fix crash on unknown symlinks. 2010-10-31 18:04:34 -04:00
Joey Hess
1576c48c80 more Wall cleaning 2010-10-31 14:32:18 -04:00
Joey Hess
045b051ec1 got rid of almost all 'return ()' 2010-10-28 12:40:05 -04:00
Joey Hess
833d4b342e copyright statements 2010-10-27 16:53:54 -04:00
Joey Hess
e87287c11b fix failure propigation 2010-10-25 19:17:11 -04:00
Joey Hess
19fde4960d new fromkey subcommand, for registering urls, etc
had to redo Annex monad's flag storage
2010-10-21 16:30:16 -04:00
Joey Hess
2caf711827 stop trapping all exceptions
Need to allow exceptions to be thrown for SIGPIPE propigation.

Converted places that used error unncessarily to not.
2010-10-19 01:46:20 -04:00
Joey Hess
b471822cfe move supportedBackends list into annex monad
This was necessary so the File backend could import Backend w/o a cycle.

Moved code that checks whether enough backends have a file into File
backend.
2010-10-17 11:47:36 -04:00
Joey Hess
909f619c07 tweaks 2010-10-16 16:20:49 -04:00
Joey Hess
e80160380a now finds files in git or not depending on what command wants 2010-10-16 14:58:35 -04:00
Joey Hess
29039fdf97 add flags, and change to subcommand style 2010-10-14 21:10:59 -04:00