Commit graph

26247 commits

Author SHA1 Message Date
Joey Hess
f845195354
Added annex.autoupgraderepository configuration
Can be set to false to prevent any automatic repository upgrades.

Also, removed direct mode specific upgrade code in Annex.Init, and made
needsUpgrade always include the name/path of the repo, so if
there's a problem it's clear what repo has the problem.

And, made needsUpgrade catch any exceptions that might occur during the
upgrade, so it can display a more useful error message than just the
exception.
2019-09-01 13:42:26 -04:00
Joey Hess
b421004d75
reorg gitconfig settings and break out several large sections 2019-09-01 12:56:28 -04:00
Joey Hess
8865041834
rename page 2019-09-01 12:25:46 -04:00
Joey Hess
63314a9188
link to other install methods as EPEL has an ancient git-annex 2019-09-01 12:22:04 -04:00
Joey Hess
29eb2c2d9a
remove SL5 instructions
Those were from 2013, and the link to the repo no longer works.
2019-09-01 12:17:25 -04:00
Joey Hess
3f0eef4baa
v7 for all repositories
* Default to v7 for new repositories.
* Automatically upgrade v5 repositories to v7.
2019-08-30 14:09:14 -04:00
Joey Hess
1558e03014
Refuse to upgrade direct mode repositories when git is older than 2.22
That git fixed a memory leak that could cause an OOM during the upgrade.

Most git-annex builds have a new enough git already.
OSX git was upgraded with brew.

Linux i386ancient build's git was too old. Upgrading it to a fixed
git didn't work (due to the newer git not working with the old ssh,
https://bugs.chromium.org/p/git/issues/detail?id=7 )

Choices to deal with that were:

* Somehow make direct mode upgrade work with the old git, avoiding its
  OOM problem. One way would be to switch the repo to indirect mode
  first, and so upgrade to a repo with locked files. Not good when
  the filesystem does not support symlinks.
* backport the OOM fix from git 2.22
  (And do what about the version number so git-annex knows it's fixed?)
* backport openssh (and possibly more stuff)
* move the i386ancient build to at least Debian stretch (still backporting git)
  But this will make it no longer work with some of the ancient kernels it
  targets.

Of those, backporting the OOM fix seemed the best approach. Put "oomfix"
in the git version number to indicate it.

I have not automated building the git backport, so here's the patch I
used:

diff -ur orig/git-2.1.4/convert.c git-2.1.4/convert.c
--- orig/git-2.1.4/convert.c	2014-12-18 18:42:18.000000000 +0000
+++ git-2.1.4/convert.c	2019-08-29 20:05:04.371872338 +0100
@@ -404,7 +404,7 @@
 	if (start_async(&async))
 		return 0;	/* error was already reported */

-	if (strbuf_read(&nbuf, async.out, len) < 0) {
+	if (strbuf_read(&nbuf, async.out, 0) < 0) {
 		error("read from external filter %s failed", cmd);
 		ret = 0;
 	}
diff -ur orig/git-2.1.4/GIT-VERSION-GEN git-2.1.4/GIT-VERSION-GEN
--- orig/git-2.1.4/GIT-VERSION-GEN	2014-12-18 18:42:18.000000000 +0000
+++ git-2.1.4/GIT-VERSION-GEN	2019-08-29 20:06:39.132743228 +0100
@@ -1,7 +1,7 @@
 #!/bin/sh

 GVF=GIT-VERSION-FILE
-DEF_VER=v2.1.4
+DEF_VER=v2.1.4.oomfix

 LF='
 '
diff -ur orig/git-2.1.4/configure git-2.1.4/configure
--- orig/git-2.1.4/configure	2014-12-18 18:42:19.000000000 +0000
+++ git-2.1.4/configure	2019-08-29 20:27:45.896380015 +0100
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='git'
 PACKAGE_TARNAME='git'
-PACKAGE_VERSION='2.1.4'
-PACKAGE_STRING='git 2.1.4'
+PACKAGE_VERSION='2.1.4.oomfix'
+PACKAGE_STRING='git 2.1.4.oomfix'
 PACKAGE_BUGREPORT='git@vger.kernel.org'
 PACKAGE_URL=''

diff -ur orig/git-2.1.4/version git-2.1.4/version
--- orig/git-2.1.4/version	2014-12-18 18:42:19.000000000 +0000
+++ git-2.1.4/version	2019-08-29 20:06:17.572545210 +0100
@@ -1 +1 @@
-2.1.4
+2.1.4.oomfix
2019-08-29 15:24:41 -04:00
Joey Hess
c83c82a9c4
followup 2019-08-29 13:25:22 -04:00
Joey Hess
d6e1f09ed2
init: Catch more exceptions when testing locking. 2019-08-29 12:19:07 -04:00
Joey Hess
dc19fa8b04
comment 2019-08-29 12:06:46 -04:00
Joey Hess
f5a63e5a81
devblog 2019-08-28 15:18:41 -04:00
Joey Hess
6b27fc58d0
v7 bug review and cleanup 2019-08-28 12:20:30 -04:00
Joey Hess
a648c22b9b
clarification 2019-08-27 16:18:29 -04:00
Joey Hess
c21c0cd885
update with WSL findings 2019-08-27 15:45:43 -04:00
Joey Hess
7f2bf5a802
followup 2019-08-27 15:41:31 -04:00
Joey Hess
56370c009c
Merge branch 'master' of ssh://git-annex.branchable.com 2019-08-27 14:14:52 -04:00
Joey Hess
45663f6f35
planning 2019-08-27 14:14:16 -04:00
Joey Hess
11e3b2397c
update location log for missing content during direct mode conversion
If a direct mode file is deleted or modified, and there are no other
files containing the content, the content was lost. That's a normal
thing that can happen in direct mode, but not in v7, so the upgrade
code has to notice it in order for the location log to be accurate.
2019-08-27 13:54:21 -04:00
Joey Hess
3a0842d9f8
fix bug introduced in direct mode conversion
oops, the code was "if direct && not present" and I removed the direct
which made the wrong path be taken.
2019-08-27 12:29:05 -04:00
Joey Hess
6b56c3ae11
close 2019-08-27 11:39:52 -04:00
Joey Hess
0b10d10753
add 2019-08-26 17:00:06 -04:00
Ilya_Shlyakhter
637ced91b9 Added a comment 2019-08-26 20:58:14 +00:00
Joey Hess
867f0b7442
Merge branch 'master' of ssh://git-annex.branchable.com 2019-08-26 16:46:32 -04:00
Joey Hess
99ac4c0cb8
devblog 2019-08-26 16:46:13 -04:00
Joey Hess
af8a73d539
noticed a problem 2019-08-26 16:41:24 -04:00
Joey Hess
20741b1eb4
Automatically convert direct mode repositories to v7 with adjusted unlocked branches
* Automatically convert direct mode repositories to v7 with adjusted
  unlocked branches and set annex.thin.
* init: When run on a crippled filesystem with --version=5,
  will error out, since version 7 is needed for adjusted unlocked branch.
* direct: This command always errors out as direct mode is no longer
  supported.
* indirect: This command has become a deprecated noop.
* proxy: This command is deprecated because it was only needed in direct
  mode. (But it continues to work.)

Also removed mentions of direct mode throughough the documentation.

I have not removed all the direct mode code yet.
2019-08-26 15:05:25 -04:00
Joey Hess
2fd27c6df5
assistant: When creating a new repository use v7 adjusted branches with annex.thin
Rather than direct mode, which this is a small step on the path to
removing.

Init on a crippled filesystem already used v7 adjusted branches,
and like that, this doesn't pose any interoperability issues with old
versions of git-annex that clone the same repo, because files are only
unlocked on the adjusted branch.
2019-08-26 12:54:14 -04:00
Joey Hess
0c718763fd
planning
several entangled things
2019-08-26 12:29:43 -04:00
Joey Hess
9bf3a5c405
close as probably fixed in recent test suite improvements 2019-08-26 12:27:27 -04:00
Joey Hess
b627c5b4d0
followup 2019-08-26 12:20:57 -04:00
ronald@bfae3dfd3105df06e4cc44c37b3e8dc430bd137a
04a928eccc fix git:// url for repo 2019-08-25 19:12:58 +00:00
Joey Hess
8012d61874
Merge branch 'master' of ssh://git-annex.branchable.com 2019-08-23 16:52:23 -04:00
Joey Hess
cb318d4404
todo 2019-08-23 16:52:08 -04:00
giuly
1eb2a87147 Datalad/Git annex/unkown archive format 2019-08-23 19:40:04 +00:00
yarikoptic
9531f5b6d4 initial report about regression failing to detect need for pidlock 2019-08-23 14:16:11 +00:00
Joey Hess
246ec97338
update 2019-08-22 21:04:19 -04:00
https://christian.amsuess.com/chrysn
e4161b6ea5 Added a comment: workaround not working any more 2019-08-21 11:34:23 +00:00
Ilya_Shlyakhter
afe5be0463 Added a comment: another instance of git-annex-sync not being idempotent 2019-08-20 17:08:45 +00:00
Ilya_Shlyakhter
f0ca57a232 added a hyperlink to conda installation page 2019-08-20 02:45:43 +00:00
Ilya_Shlyakhter
908476a9b8 Added a comment: hourly windows autobuild seems to have stopped running 2019-08-19 19:47:06 +00:00
Joey Hess
0bb42aea9a
add news item for git-annex 7.20190819 2019-08-19 12:27:15 -04:00
Joey Hess
a6933e1629
Merge branch 'master' of ssh://git-annex.branchable.com 2019-08-16 14:09:27 -04:00
Joey Hess
7f97575941
Makefile: Changed default zsh completion location to zsh default fpath.
Systems such as Debian that have overridden the default fpath will need to
set ZSH_COMPLETIONS_PATH.

I feel that Debian is causing unncessary complexity by making this change,
and have filed a bug report about it.

This also means that when git-annex is installed with PREFIX=/usr/local
it will use /usr/local/share/zsh/site-functions which works with probably
all versions of zsh.
2019-08-16 14:08:56 -04:00
Ilya_Shlyakhter
09f79e5256 Added a comment: storing checksums for non-checksum keys in metadata 2019-08-16 16:06:29 +00:00
Ilya_Shlyakhter
41fee0b0fc removed 2019-08-16 16:03:41 +00:00
Ilya_Shlyakhter
9f62583717 Added a comment: storing checksums for non-checksum keys in metadata 2019-08-16 16:02:41 +00:00
Joey Hess
b532d69498
add missing build dep of install-completions
Since it runs git-annex to generate the completions files.
2019-08-16 11:42:00 -04:00
Joey Hess
206f9ad7c0
add comment 2019-08-16 11:36:33 -04:00
Joey Hess
fa62c32233
Fix intermittent failure of the test suite
Its repeated opening and writing to the sqlite database somehow caused
inode cache information to occasionally be lost.

This loses code coverage, since running git-annex as a child process
prevents tracking what parts of the code are exercised. I have not looked
at the code coverage in a long time. It would probably be possible to
collect code coverage for the child procesess and merge it together.
2019-08-16 11:11:55 -04:00
Joey Hess
83cdc511da
use GHC not ghc 2019-08-16 11:00:28 -04:00