From 1363c89fd3360da9a809ec01d10f07bcaf98a815 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 26 Dec 2021 14:33:32 -0400 Subject: [PATCH 1/3] status --- ..._53c317adf0ef48d9ba4af0571f9ded3f._comment | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment diff --git a/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment new file mode 100644 index 0000000000..b57072a924 --- /dev/null +++ b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment @@ -0,0 +1,36 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 5""" + date="2021-12-26T18:06:26Z" + content=""" +I have this mostly implemented, in the `readonly-annex-merge` branch. +It seems to work well. Eg: + + joey@darkstar:/tmp/a2>/usr/bin/git-annex whereis xxx + git-annex: .git/annex/journal.lck: openFd: permission denied (Permission denied) + - exit 1 + joey@darkstar:/tmp/a2>~/bin/git-annex whereis xxx + whereis xxx (1 copy) + 2a4e4ab8-6bc0-484b-aa4c-e54053cf1d87 -- joey@darkstar:/tmp/a1 [origin] + ok + +One sticking point is transitions. When a remote git-annex branch has a +transition in it, and the transition has not yet been applied to the local +branch and/or other remote git-annex branches, then as this is currently +implemented, the transition will not be applied when doing the in-memory +merge. + +Since the only transitions so far forget old history and dead remotes, +it's not a major effect. It would only mean that some additional information +about a dead remote would be displayed, or that `git-annex log` would +display more history. + +Also, there are a couple of other things that look at the git-annex branch +in a way that break the invariant when there are unmerged branches. +`git-annex log` itself does. And Annex.Branch.files only sees log files +in the local git-annex branch, not files that are in unmerged branches. + +These things break the invariant I am shooting for, that git-annex +commands will behave the same whether they are in this readonly mode or +not. They will need to be addressed before this is merged.. +"""]] From ba3d89935b7edbefdc3ae21cb2af6a77d8181787 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 26 Dec 2021 14:33:32 -0400 Subject: [PATCH 2/3] status --- ..._53c317adf0ef48d9ba4af0571f9ded3f._comment | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment diff --git a/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment new file mode 100644 index 0000000000..c917fc01ef --- /dev/null +++ b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_5_53c317adf0ef48d9ba4af0571f9ded3f._comment @@ -0,0 +1,36 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 5""" + date="2021-12-26T18:06:26Z" + content=""" +I have this mostly implemented, in the `readonly-annex-merge` branch. +It seems to work well. Eg: + + joey@darkstar:/tmp/a2>/usr/bin/git-annex whereis xxx + git-annex: .git/annex/journal.lck: openFd: permission denied (Permission denied) + - exit 1 + joey@darkstar:/tmp/a2>~/bin/git-annex whereis xxx + whereis xxx (1 copy) + 2a4e4ab8-6bc0-484b-aa4c-e54053cf1d87 -- joey@darkstar:/tmp/a1 [origin] + ok + +One sticking point is transitions. When a remote git-annex branch has a +transition in it, and the transition has not yet been applied to the local +branch and/or other remote git-annex branches, then as this is currently +implemented, the transition will not be applied when doing the in-memory +merge. + +Since the only transitions so far forget old history and dead remotes, +it's not a major effect. It would only mean that some additional information +about a dead remote would be displayed, or that `git-annex log` would +display more history. + +Also, there are several couple of other things that look at the git-annex +branch, beyond simply reading a single log file, and so do not look at +unmerged branches. `git-annex log` does, --all does, etc. There are +several more. + +These things break the invariant I am shooting for, that git-annex +commands will behave the same whether they are in this readonly mode or +not. They will need to be addressed before this is merged.. +"""]] From 0c208e2cdbc324a9635b90daaffa5e77a2d09960 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 27 Dec 2021 13:44:49 -0400 Subject: [PATCH 3/3] comment --- ..._7fac2098e6d7cce997a540592e20c97a._comment | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_6_7fac2098e6d7cce997a540592e20c97a._comment diff --git a/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_6_7fac2098e6d7cce997a540592e20c97a._comment b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_6_7fac2098e6d7cce997a540592e20c97a._comment new file mode 100644 index 0000000000..3b8785873e --- /dev/null +++ b/doc/bugs/merge-annex-branches__61__false_-_automate_and_extend/comment_6_7fac2098e6d7cce997a540592e20c97a._comment @@ -0,0 +1,30 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 6""" + date="2021-12-27T17:38:49Z" + content=""" +Current list of items that need to be fixed before this is mergeable: + +- When there is a transition in one of the remote git-annex branches + that has not yet been applied to the local or other git-annex branches. + Transitions are not handled. +- `git-annex log` runs git log on the git-annex branch, and so + it will not be able to show information coming from the other, not yet + merged branches. +- Annex.Branch.files only looks at files in the git-annex branch and not + unmerged branches. This affects git-annex info output. +- Annex.Branch.hs.overBranchFileContents ditto. Affects --all and + also importfeed (but importfeed cannot work in a read-only repo + anyway). +- CmdLine.Seek.seekFilteredKeys when precaching location logs. + Note use of Annex.Branch.fullname +- Database.ContentIdentifier.needsUpdateFromLog and updateFromLog +- (skip) `--in=repository@{date}` uses loggedLocationsHistorical which uses + Annex.Branch.getHistorical, which does not look at unmerged branches. + But perhaps this is ok.. This uses the reflog, so when used to query + eg files that were present in the past, it means ones that the local + git-annex branch thought were present; other git-annex branches + may have had a different opinion but it will not show those. + And another way to look at it, the result for this will be the same + before and after merging those branches. +"""]]