git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Christoph Anton Mitterer <calestyo@scientia.net>
To: git@vger.kernel.org
Subject: how to make "full" copy of a repo
Date: Sat, 28 Mar 2015 03:56:37 +0100	[thread overview]
Message-ID: <1427511397.19633.52.camel@scientia.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 2589 bytes --]

Hey.

I was looking for an ideally simple way to make a "full" copy of a git
repo. Many howtos are floating around on this on the web, with also lots
of voodoo.


First, it shouldn't be just a clone, i.o.w.
- I want to have all refs (local/remote branches/tags) and of course all
objects from the source repo copied as is.
So it's local branches should become my local branches and not remote
branches as well - and so on.
Basically I want to be able to delete the source afterwards (and all
backups ;) ) and not having anything lost.

- It shouldn't set the source repo as origin or it's branches as remote
tracking branches, as said it should be identical the source repo, just
"freshly copied" via the "Git aware transport mechanisms".

- Whether GC or repacking happens, I don't care, as long as nothing that
is still reachable in the source repo wouldn't get lost (or get lost
once I run a GC in the copied repo).

- Whether anything that other tools have added to .git (e.g. git-svn
stuff) get's lost, I don't care.

- It should work for both, bare and non-bare repos, but it's okay when
it doesn't copy anything that is not committed or stashed.



I'd have said that either:
$ git clone --mirror URl-to-source-repo copy
for the direction from "outside" the source to a copy,
or alternatively:
$ cd source-repo
$ git push --mirror URl-to-copy
for the direction from "within" the source to a copy with copy being an
empty bare or non-bare repo,
would do the job.

But:

a) but the git-clone(1) part for --mirror:
   >and sets up a refspec configuration such that all these refs are
   >overwritten by a git remote update in the target repository.
   kinda confuses me since I wanted to get independent of the source
   repo and this ssems to set up a remote to it?

b) do I need --all --tags for the push as well?

c) When following
   https://help.github.com/articles/duplicating-a-repository/
   it doesn't seem as if --mirror is what I want because they seem to
   advertise it rather as having the copy tracking the source repo.
   Of course I read about just using git-clone --bare, but that seems to
   not copy everything that --mirror does (remote-tracking branches,
   notes).

   So I'm a bit confused...


1) Is it working like I assumed above?
2) Does that also copy things like git-config, hooks, etc.?
3) Does it copy the configured remotes from the source?
4) What else is not copied by that? I'd assume anything that is not
   tracked by git and the stash of the source?



Thanks a lot,
Chris.

[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5313 bytes --]

             reply	other threads:[~2015-03-28  2:56 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-28  2:56 Christoph Anton Mitterer [this message]
2015-03-28 14:31 ` how to make "full" copy of a repo Kevin D
2015-03-29  2:21   ` Christoph Anton Mitterer
2015-03-29 11:05     ` Kevin D
2015-03-30 15:22   ` Duy Nguyen
2015-03-30 17:37     ` Junio C Hamano
2015-03-28 18:52 ` Torsten Bögershausen
2015-03-28 20:33   ` Ævar Arnfjörð Bjarmason
2015-03-29  2:22   ` Christoph Anton Mitterer

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=1427511397.19633.52.camel@scientia.net \
    --to=calestyo@scientia.net \
    --cc=git@vger.kernel.org \
    /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).