Re: [git-users] Mirror remote repository
On Sun, 27 Mar 2016 22:53:54 -0700 (PDT) Swaroopa Gangadharan wrote: > Hi Konstantin Khomoutov , Thank you for your reply. Manual clone is > not preferred as we have 700+ git repos and that will take months to > do. Is there any automated way to do the clone? I don't understand the essense of your question. There exist a potentially unbound "ways" to automate cloning or repos -- that's what programming was invented for: if you have a repetitive task which is infeasible/costly for a human to do, write a program which will make a computer carry out this task. As to how exactly program a solution to this task, highly depends on your configuration. In the simplest form -- just to demonstrate an idea -- the script would be #!/bin/sh while read name; do git clone --mirror "$url_base/$name" done You then create a file containing the names of your repos -- one per line -- and call your script as: $ ./clone-all https://groups.google.com/d/optout.
Re: [git-users] Mirror remote repository
Hi Konstantin Khomoutov , Thank you for your reply. Manual clone is not preferred as we have 700+ git repos and that will take months to do. Is there any automated way to do the clone? On Monday, March 21, 2016 at 4:16:23 PM UTC+5:30, Konstantin Khomoutov wrote: > > On Mon, 21 Mar 2016 02:49:04 -0700 (PDT) > Swaroopa Gangadharan > wrote: > > > how to configure a read-only copy of a remote Git repository on a > > local server in bare mode and automatically synchronize its contents. > > I need to configure a mirror of the repository hosted at another > > location and the mirrored repository should automatically perform > > syncing of code at regular intervals. > > A mirror clone is done in a very boring way -- by passing the > "--mirror" command-line option to `git clone`. > > In this mode, `git clone` will configure the resulting local repository > in such a way that a mere call to `git fetch origin` will do a full > one-way sync with the source remote repository. > > Performing synchronization at regular interval is done via scripting > the `git fetch origin` call making your OS's scheduler run this script > using whatever schedule you will configure. > > Making the repository read-only is the only tricky part in fact. > This mostly amounts to the fact Git itself does not provide any > authentication and authorization, and -- by extension -- access > control. To add to the picture, Git repositories may be served using > a multitude of options (HTTP, SSH, Git's own server). > > The native Git wire protocol (git://) served by the `git-daemon` > program is already read-only unless you tweak the repository's > configuration (see that program's manual page for exact detais), > so if you intend to serve your repository using `git-daemon`, that's > all you will need to set up. > > Otherwise I'd probably recommend to install a simple pre-receive hook > into your repository which would output "Write access denied" to its > standard error stream and exit with a non-zero exit code. That is, > something as simple as > > #!/bin/sh > printf 'Write access denied\n' >&2 > exit 1 > > This will reject all pushes from remote repositories right away. > > Consult the githooks manual page for more info on hooks. > -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [git-users] Mirror remote repository
On Mon, 21 Mar 2016 02:49:04 -0700 (PDT) Swaroopa Gangadharan wrote: > how to configure a read-only copy of a remote Git repository on a > local server in bare mode and automatically synchronize its contents. > I need to configure a mirror of the repository hosted at another > location and the mirrored repository should automatically perform > syncing of code at regular intervals. A mirror clone is done in a very boring way -- by passing the "--mirror" command-line option to `git clone`. In this mode, `git clone` will configure the resulting local repository in such a way that a mere call to `git fetch origin` will do a full one-way sync with the source remote repository. Performing synchronization at regular interval is done via scripting the `git fetch origin` call making your OS's scheduler run this script using whatever schedule you will configure. Making the repository read-only is the only tricky part in fact. This mostly amounts to the fact Git itself does not provide any authentication and authorization, and -- by extension -- access control. To add to the picture, Git repositories may be served using a multitude of options (HTTP, SSH, Git's own server). The native Git wire protocol (git://) served by the `git-daemon` program is already read-only unless you tweak the repository's configuration (see that program's manual page for exact detais), so if you intend to serve your repository using `git-daemon`, that's all you will need to set up. Otherwise I'd probably recommend to install a simple pre-receive hook into your repository which would output "Write access denied" to its standard error stream and exit with a non-zero exit code. That is, something as simple as #!/bin/sh printf 'Write access denied\n' >&2 exit 1 This will reject all pushes from remote repositories right away. Consult the githooks manual page for more info on hooks. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.