emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: git-handler.el


From: Eli Zaretskii
Subject: Re: git-handler.el
Date: Sat, 12 Aug 2017 20:43:50 +0300

> From: Jonas Bernoulli <address@hidden>
> Cc: address@hidden, address@hidden, address@hidden
> Date: Sat, 12 Aug 2017 19:26:15 +0200
> 
> >> > A revisioned filename is something like "/path/to/file@@revision".
> >> > "revision" could be a revision like "81656add81", a branch like
> >> > "scratch/kqueue", or a tag like "emacs-19.34". Of course, the syntax
> >> > could be changed.
> >>
> >> I would prefer /path/to/repo/@git:REVISION:path/to/file.  I don't have
> >> a strong opinion about what the magic cookie should look like, but I
> >> think it should be inserted at the root of the working tree.
> >
> > That doesn't scale to VCSes which keep separate versions for
> > individual files.
> 
> How so?  Wouldn't my scheme just look like:
> 
>   /path/to/dir-containing-closest-control-file/<vcs>@<rev>:<file>
> 
> instead of
> 
>   /path/to/dir-containing-closest-control-file/<vcs>@<file>/<rev>
> 
> when trying to stay as close the internals of that <vcs>?

Well, for starters, it will defeat the completion machinery, or at
least make it much more complicated.

> Also isn't that an implementation detail and users of <vcs> still
> think of "/path/to/top" as "the repository"?  If that is so then
> what should it matter that <vcs> spreads the history files across
> the repository instead of putting them into a dedicated control
> directory?

FILE@@revision is not a history file, it is FILE as it looked like at
given VERSION.  Where that information is kept is beside the point.
As I'm sure you understand, so I guess I don't really see the point
you are making here.

> > Michael's scheme does support such VCSes.  For a
> > VCS like Git or Bazaar, Michael's scheme shouldn't get in the way, I
> > think.
> 
> Maybe we could use different schemes for different vc systems.

That would be undesirable, I think.

> The revision is part of a virtual directory structure

Sorry, you lost me.  What is that "virtual directory structure", and
how is it relevant to this issue?

> This is one way of accessing <blob> as stored in <branch>:

We are talking about abstractions, not about their Git implementation.
So why do we have to consider blobs?

> One example use case where the scheme that I propose would be nicer than
> the non-hierarchic one is "using find-file to open another blob from the
> same revision/tree".

I guess I'm so Git-ignorant that I don't even understand what that
means.  Maybe I shouldn't be part of this discussion.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]