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

Re: [PATCH] [PATCH] git-mirror - exactly mirror another repository

From
Andy Whitcroft <apw@shadowen.org>
Date
Apr 27, 2007, 08:58 UTC
Message-ID
<4631BB32.9080405@shadowen.org>
In-Reply-To
<20070427021505.1740.58136.stgit@rover>
Petr Baudis wrote:
Show 56 quoted lines
> Sometimes its handy to be able to efficiently backup or mirror one
> Git repository to another Git repository by employing the native
> Git object transfer protocol.  But when mirroring or backing up a
> repository you really want:
> 
>   1) Every object in the source to go to the mirror.
>   2) Every ref in the source to go to the mirror.
>   3) Any ref removed from the source to be removed from the mirror.
> 
> and since git-fetch doesn't do 2 and 3, here's a tool that does.
> 
> This is based on Shawn Pearce's patch from 25 Sep 2006, updated to take
> Junio's and Sergey's review into account, to use few newer pieces of Git
> infrastructure and with few trivial tweaks. The repacking part was dropped
> since git-fetch does that on its own now.
> 
> I actually still would kind of prefer this to be a git-fetch's feature but
> the general mood seems to be to have this as a separate command and I can't
> say I care at all.
> 
> Signed-off-by: Petr Baudis <pasky@suse.cz>
> ---
> 
>  .gitignore                   |    1 
>  Documentation/config.txt     |    6 ++
>  Documentation/git-mirror.txt |   54 +++++++++++++++++++++
>  Makefile                     |    2 -
>  git-mirror.perl              |  110 ++++++++++++++++++++++++++++++++++++++++++
>  5 files changed, 172 insertions(+), 1 deletions(-)
> 
> diff --git a/.gitignore b/.gitignore
> index 4dc0c39..d0b67da 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -80,6 +80,7 @@ git-merge-resolve
>  git-merge-stupid
>  git-merge-subtree
>  git-mergetool
> +git-mirror
>  git-mktag
>  git-mktree
>  git-name-rev
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index e0aff53..e05e4c5 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -513,6 +513,12 @@ log.showroot::
>  	Tools like gitlink:git-log[1] or gitlink:git-whatchanged[1], which
>  	normally hide the root commit will now show it. True by default.
>  
> +mirror.allowed::
> +	If true, gitlink:git-mirror[1] will be allowed to run on the
> +	repository.  Please see its documentation for all the implications.
> +
> +mirror.
> +
Ok, I can see why you'd want to protect a user from going git-mirror
<foo> and losing their local changes.  But you've only protected them
from mirroring at all.  If they want to use this repo as a mirror of
somewhere X you have not stopped them from git-mirror Y'ing themselves.
 Now yes if you know its a mirror then I guess you can recover with a
git-mirror X but ...

It seems to me if you are having a config option that perhaps it should be the URL from whence the mirror comes, and the command should just be 'git mirror'.

[mirror]
	url='somewhere'
-apw
Previous: Johannes Schindelin
Message 7 of 7 in “git-mirror - exactly mirror another repository”
  1. [PATCH] git-mirror - exactly mirror another repositoryPetr Baudis, Apr 27, 2007
  2. Petr BaudisApr 27, 2007
  3. A Large Angry SCMApr 27, 2007
  4. Petr BaudisApr 27, 2007
  5. Petr BaudisApr 27, 2007
  6. Johannes SchindelinApr 27, 2007
  7. Andy WhitcroftApr 27, 2007

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.