Thread (15 messages) flat view 15 messages, 2 authors, 2016-06-15

Re: [RFC/PATCH v3 3/3] archive.c: add basic support for submodules

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:46:01

Hi,

On Sat, 24 Jan 2009, Lars Hjemli wrote:
On Fri, Jan 23, 2009 at 20:57, Johannes Schindelin
[off-list ref] wrote:
quoted
 in all of Git, we try to assume that only reachable objects are valid 
 objects.
I don't think this is true (most git commands accepts their arguments
as valid objects without verifying if they are reachable from a ref).
The fact that a user can ask for some object directly, and that we do not 
try to validate it in that case has nothing to do with said assumption.

If something is pushed to a remote, and the connection fails, some commit 
could be pushed already, but some of its reachable objects lacking.

The user on the remote side can still try to salvage parts by accessing 
the objects directly, by their name.

But the only guarantee that the objects are reachable is to start from a 
ref.

Concretely, if your patch is applied as-is, such a half-pushed state could 
affect git-archive in a nasty way: even if the user started from a ref, 
there could be missing objects!
Do you feel it is necessary to perform a reachability check of the 
gitlink'd commit before traversing into a submodule tree?
No.  Because HEAD is a ref, too.

Now, there is still a problem when your submodule is missing the objects 
for the commit your superproject is referring to.

IMO that is a serious issue, as it just asks for confused users.
quoted
- presence of a specific commit in the supermodule is a _lousy_ 
  indicator that the user wants to include that submodule in the 
  archive.
This is the issue I tried to address with my
`--submodules=[a|c|r][g:<name>]` proposal in the commit message for
this patch.
Nope, doing this "in the future" does not please me one bit.

Besides, I find the semantics, uhm, "interesting".  (The other word would 
be "unintuitive".  Why do you have to be so cryptic that I have to read 
the proposal to understand what the heck "c" is about?)

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help