git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC 0/3] Reflogs for deleted refs: fix breakage and suggest namespace change

From
Alexey Muranov <alexey.muranov@gmail.com>
Date
Aug 19, 2012, 22:09 UTC
Message-ID
<9E4BBC27-5B26-4048-93D4-FE02C550F4E2@gmail.com>
In-Reply-To
<7v1uj2pysd.fsf@alter.siamese.dyndns.org>
On 19 Aug 2012, at 19:38, Junio C Hamano wrote:
Show 9 quoted lines
> Alexey Muranov <alexey.muranov@gmail.com> writes:
> 
>> 2. I think that allowing both "next" and "next/foo" complicates
>> the mapping from branch names to file paths, and it does not seem
>> necessary if dead reflogs are moved away to "graveyard" anyway.
> 
> It is unclear why the first two lines above leads to the conclusion
> "it does not seem necessary" (but honestly, I do not particularly
> care).
I thought that the first reason that allowing "next" and "next/foo" seemed necessary was avoiding conflicts with dead reflogs or between dead reflogs.  If dead reflog for "next/foo" is moved away, it will not conflict with a new one for "next".  There remains a problem with a conflict between dead "next/foo" and dead "next".  This can be solved as Jeff suggested by adding special "escape" symbols, or as i suggested below, by keeping reflogs deleted on different occasions in different "timestamp" directories.
Show 16 quoted lines
>> 3. There remains the question what to do with dead reflogs for
>> different branches having the same name.  Maybe, keep the death
>> date and time under the graveyard directory and not allow the user
>> to delete 2 times in less than 1 second?
>> 
>> /logs/graveyard/yyyy-mm-dd-hhmmss/refs/heads/next/foo
> 
> How would that help us in what way?
> 
> When I ask "git log -g next/foo" for the "next/foo" branch that
> currently exists, I want to see the update history of its tip since
> I created it for the last time, and then an entry that says I
> created it at such and such time.  If I used to have the branch
> before but deleted, then the output should be followed by another
> entry that says I deleted it at such and such time, followed by the
> history of the tip updates.

I only suggested how to resolve conflicts between dead reflogs in graveyard if "next" and "next/foo" cannot coexist. For example, if first "next/foo" was created and deleted, and then "next" was created and deleted. It also seems nice to me to have dead reflogs for different identically named branches (created and deleted independently) in separate files.

It is possible to collect the information for "git log -g next/foo" by looking through all "timestamp" subdirectories in graveyard.
-Alexey.
Previous: Junio C HamanoNext: Junio C Hamano
Message 13 of 21 in “[RFC 0/3] Reflogs for deleted refs: fix breakage and suggest namespace change”
  1. mhagger@alum.mit.eduAug 18, 2012
  2. 1/3 t9300: format test in modern style prior to modifying itmhagger@alum.mit.edu, Aug 18, 2012
  3. 2/3 Delete reflogs for dead references to allow pruningmhagger@alum.mit.edu, Aug 18, 2012
  4. Jeff KingAug 21, 2012
  5. 3/3 Change naming convention for the reflog graveyardmhagger@alum.mit.edu, Aug 18, 2012
  6. Junio C HamanoAug 18, 2012
  7. Alexey MuranovAug 18, 2012
  8. Junio C HamanoAug 19, 2012
  9. Alexey MuranovAug 19, 2012
  10. Alexey MuranovAug 19, 2012
  11. Alexey MuranovAug 19, 2012
  12. Junio C HamanoAug 19, 2012
  13. Alexey MuranovAug 19, 2012
  14. Junio C HamanoAug 20, 2012
  15. Junio C HamanoAug 20, 2012
  16. Alexey MuranovAug 20, 2012
  17. Alexey MuranovAug 20, 2012
  18. Michael HaggertyAug 19, 2012
  19. Junio C HamanoAug 19, 2012
  20. Jeff KingAug 21, 2012
  21. Junio C HamanoAug 21, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.