git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Philip Oakley" <philipoakley@iee.org>
To: "Gulshan Singh" <gsingh2011@gmail.com>,
	"Fredrik Gustafsson" <iveqy@iveqy.com>
Cc: <git@vger.kernel.org>
Subject: Re: Why can't I push from a shallow clone?
Date: Fri, 26 Jul 2013 22:48:12 +0100	[thread overview]
Message-ID: <34D78815D927482897856F1C5BB2D183@PhilipOakley> (raw)
In-Reply-To: CANEZYrdR3xLRSQAo6rroN3TLv48HEKp4_t95WEf6rm8-+r+2tw@mail.gmail.com

From: "Gulshan Singh" <gsingh2011@gmail.com>
Sent: Friday, July 26, 2013 8:12 PM
> Hey Fredrick,
>
> It's good to know that work is being done on this. I still want to
> understand it though, so I guess I'll ask specific questions about
> Junio's response. He states,
>
> "If you cloned shallowly some time ago, worked without communicating
> with the other side while the other side progressed, AND if the other
> side's progress included a rewind & rebuild of the history, you would
> see a similar topology.
> The leftmost 'S' in the above picture might have been the tip of the
> branch when you shallowly cloned with depth 1, and since then the
> remote end may have discarded topmost three commits and have rebuilt
> its history that leads to the rightmost 'R'. In such a case pushing to
> the remote's HEAD will fail."
>
> So as an example, if you shallow clone a branch, then someone squashes
> the head commit and makes a new commit, you won't be able to push to
> HEAD because the parent has changed. But if someone does that, I don't
> think you would be able to push even if it was a full clone. That's
> why it's usually not a good idea to rebase shared branches. So did I
> misunderstand the scenario?

In your example you have a sucessful failure, that is, the shallow issue 
hasn't got in the way of the normal non-ff failure on push. (asuming the 
squash is an extra commit, not a re-written top commit, so at least you 
still have your common commit of your depth1 shallow clone)

For it to be a proper shallow failure the remote repo needs to be 
re-written sufficiently far back that your shallow clone has nothing in 
common with it. In such a case your DAG can't join onto the remote's 
DAG.

>
>
> On Thu, Jul 25, 2013 at 11:55 PM, Fredrik Gustafsson <iveqy@iveqy.com> 
> wrote:
>> On Thu, Jul 25, 2013 at 07:33:16PM -0700, Gulshan Singh wrote:
>>> I've been trying to figure out why I can't push from a shallow clone
>>> (using --depth) to a repository. I've made simple examples where it
>>> works, but I've read that in doesn't work in every case. However, I
>>> can't come up with a case where it doesn't work. Googling gives this
>>> answer: 
>>> http://stackoverflow.com/questions/6900103/why-cant-i-push-from-a-shallow-clone,
>>> but I don't completely understand the explanation, so I was hoping
>>> someone could explain it.
>>
>> I can't explain it better than what Junio did in the link you just
>> provide. However there's ongoing work to allow shallow clones to be 
>> able
>> to push. You can read about it here:
>> http://thread.gmane.org/gmane.comp.version-control.git/230612/focus=230878
>> --
>> Med vänliga hälsningar
>> Fredrik Gustafsson
>> tel: 0733-608274
>> e-post: iveqy@iveqy.com
> -- 
> Gulshan Singh
> University of Michigan, Class of 2015
> College of Engineering, Computer Science Major
> gulshan@umich.edu | 248.961.6317
> Alternate E-mail: gsingh2011@gmail.com
--
Philip 

  reply	other threads:[~2013-07-26 21:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-26  2:33 Why can't I push from a shallow clone? Gulshan Singh
2013-07-26  6:55 ` Fredrik Gustafsson
2013-07-26 19:12   ` Gulshan Singh
2013-07-26 21:48     ` Philip Oakley [this message]
2013-07-26  9:38 ` Konstantin Khomoutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=34D78815D927482897856F1C5BB2D183@PhilipOakley \
    --to=philipoakley@iee.org \
    --cc=git@vger.kernel.org \
    --cc=gsingh2011@gmail.com \
    --cc=iveqy@iveqy.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).