Commit graph

35150 commits

Author SHA1 Message Date
Ilya_Shlyakhter
eeaa2b44cd added issue re: output of error messages with --json-error-messages 2019-09-03 18:20:34 +00:00
ginquistador@86f226616ead98d2733e249429918f241f928064
95468047d6 Added a comment: Disappointed with git add 2019-09-03 07:30:28 +00:00
TroisSinges
2eb7e338b6 Added a comment 2019-09-02 22:19:04 +00:00
Ilya_Shlyakhter
8acd01334c bug report where git-annex-copy fails with "thread blocked indefinitely in an STM transaction" 2019-09-02 18:26:28 +00:00
Ilya_Shlyakhter
1a7c06ea9d added suggestion for S3 export remote redirecting to key-value store 2019-09-02 17:41:46 +00:00
Ilya_Shlyakhter
62723b7c45 Added a comment 2019-09-02 15:49:57 +00:00
yarikoptic
c83526fed7 Added a comment: the issue persists in master 2019-09-02 14:17:14 +00:00
yarikoptic
8bc27a5cd7 removed 2019-09-02 14:14:11 +00:00
yarikoptic
3e93585ccc Added a comment: the issue remains (if there were any fixed introduced) 2019-09-02 14:13:07 +00:00
yarikoptic
f951a62210 initial report on problems with unicode directories 2019-09-02 11:52:27 +00:00
TroisSinges
4c1af28371 2019-09-02 07:52:08 +00:00
johnmario.itec19@69a7b742534851b36216e0f951f1a00dbb9067cd
564256614e Added a comment: commenting on git-annex-add 2019-09-02 06:21:27 +00:00
lykos@d125a37d89b1cfac20829f12911656c40cb70018
bc2cfe2483 2019-09-01 17:10:32 +00:00
marek@33e8ba4fbc201af14a2badcc0656024401f5c916
cdb679818e 2019-09-01 10:57:57 +00:00
yarikoptic
8859e785c3 Added a comment 2019-08-31 13:00:57 +00:00
Joey Hess
31a6086a9a
v7-default branch 2019-08-30 14:14:42 -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
4f59ac05b6
info: remove "repository mode"
info: Removed the "repository mode" from its output (including the --json
output) since with the removal of direct mode, there is no repository mode.
2019-08-29 14:12:22 -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
36cf61d752
simplification
Whether or not there's a false index, it can't Restage here.

When there's a false index, restaging would alter it and not the real
index, but it fails anyway because that index is locked.

When there's not a false index, the index is locked, and so restaging
can't alter it.
2019-08-28 15:46:35 -04:00
Joey Hess
4e30b06ffb
remove unused import 2019-08-28 15:38:29 -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
e804f48f82
remove a few more isDirect tests 2019-08-28 11:53:10 -04:00
Joey Hess
a648c22b9b
clarification 2019-08-27 16:18:29 -04:00
Joey Hess
863db16e53
remove unused 2019-08-27 16:13:49 -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
75d1fbad17
improve comment 2019-08-27 14:08:46 -04:00
Joey Hess
9b1331881c
reorg remaining direct mode code
Only used for upgrading, so put it under there.
2019-08-27 14:05:38 -04:00
Joey Hess
e395ba2cb0
remove unused code 2019-08-27 13:57:17 -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
da6f4d8887
remove direct mode support from Annex.Content
No longer used. The only possible user of it would be code in
Upgrade.V5, so I verified that the parts of Annex.Content it used were
not used to manipulate direct mode files.
2019-08-27 13:14:06 -04:00
Joey Hess
16f646c9a6
don't hide message when ensureInitialized fails 2019-08-27 12:38:47 -04:00
Joey Hess
37b42e72e7
catch exceptions in upgrade
Exceptions due to eg, not being able to write to the repo are not very
useful. There tends to be an error message from git about permission
denied.
2019-08-27 12:33:35 -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
a51a479fb9
fix a couple warnings 2019-08-27 12:24:31 -04:00
Joey Hess
770b8ff926
clearer message when direct mode upgrade fails
When a remote is being upgraded, the message looked as if the local
repo was where the problem was. So include the path of the repo.
2019-08-27 12:23:34 -04:00
Joey Hess
bb18bbd426
consolidate calls to ensureInitialized
tryGitConfigRead may run ensureInitialized first, but when checkuuid = false,
that is skipped. So, make sure it's run before all onLocal actions.

ensureInitialized is inexpensive, so the extra call by tryGitConfigRead
is not a big deal. But since it was easy to do, I made it only be run
once by all calls to onLocal.

A few calls to onLocal didn't call ensureInitialized before. Notably,
the checkPresent action didn't, and does now.

That means that there's a guarantee that any necessary repo upgrades
will be run before the checkPresent action runs in the repo. Which is
important especially for the direct mode conversion, because without
that upgrade, the checkPresent action would need to support direct mode
still. Now I can remove the last bits of direct mode support in
Annex.Content without worrying that it will break accessing remotes
that have not been upgraded.

This does necessarily mean that checkPresent needs to write to the disk
when performing such a repo upgrade. The other remote actions already
did, so retrieval from a readonly remote that needed to be upgraded would
fail. Having checkPresent also fail doesn't seem like a large reversion,
especially since it already failed in the default case when checkuuid = true.
2019-08-27 12:18:01 -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
586db7f06d
Avoid making a commit when upgrading from direct mode to v7
Three reasons:

* Committing as part of an upgrade is very unusual and unexpected.
* The commit was failing with a weird error message when done during an
  automatic upgrade.
* Let me remove more of that sweet^Whorrible direct mode code.
2019-08-26 16:35:44 -04:00