Message ID | pull.1001.git.git.1618254757074.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 61a7660516131de505cf9654079a7ab7d7be704a |
Headers | show |
Series | reftable: document an alternate cleanup method on Windows | expand |
"Han-Wen Nienhuys via GitGitGadget" <gitgitgadget@gmail.com> writes: > From: Han-Wen Nienhuys <hanwen@google.com> > > The new method uses the update_index counter, which isn't susceptible to clock > inaccuracies. > > Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> > --- > reftable: document an alternate cleanup method on Windows > > The new method uses the update_index counter, which isn't susceptible to > clock inaccuracies. > > Signed-off-by: Han-Wen Nienhuys hanwen@google.com Thanks, will queue. > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1001%2Fhanwen%2Fwindows-2-v1 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1001/hanwen/windows-2-v1 > Pull-Request: https://github.com/git/git/pull/1001 > > Documentation/technical/reftable.txt | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/Documentation/technical/reftable.txt b/Documentation/technical/reftable.txt > index 3ef169af27d8..d7c3b645cfb0 100644 > --- a/Documentation/technical/reftable.txt > +++ b/Documentation/technical/reftable.txt > @@ -1011,8 +1011,13 @@ reftable stack, reload `tables.list`, and delete any tables no longer mentioned > in `tables.list`. > > Irregular program exit may still leave about unused files. In this case, a > -cleanup operation can read `tables.list`, note its modification timestamp, and > -delete any unreferenced `*.ref` files that are older. > +cleanup operation should proceed as follows: > + > +* take a lock `tables.list.lock` to prevent concurrent modifications > +* refresh the reftable stack, by reading `tables.list` > +* for each `*.ref` file, remove it if > +** it is not mentioned in `tables.list`, and > +** its max update_index is not beyond the max update_index of the stack > > > Alternatives considered > > base-commit: 89b43f80a514aee58b662ad606e6352e03eaeee4
diff --git a/Documentation/technical/reftable.txt b/Documentation/technical/reftable.txt index 3ef169af27d8..d7c3b645cfb0 100644 --- a/Documentation/technical/reftable.txt +++ b/Documentation/technical/reftable.txt @@ -1011,8 +1011,13 @@ reftable stack, reload `tables.list`, and delete any tables no longer mentioned in `tables.list`. Irregular program exit may still leave about unused files. In this case, a -cleanup operation can read `tables.list`, note its modification timestamp, and -delete any unreferenced `*.ref` files that are older. +cleanup operation should proceed as follows: + +* take a lock `tables.list.lock` to prevent concurrent modifications +* refresh the reftable stack, by reading `tables.list` +* for each `*.ref` file, remove it if +** it is not mentioned in `tables.list`, and +** its max update_index is not beyond the max update_index of the stack Alternatives considered