* Advice and repo setup @ 2013-04-06 17:51 Michael Campbell 2013-04-06 18:09 ` Seth Robertson ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: Michael Campbell @ 2013-04-06 17:51 UTC (permalink / raw) To: git My company is moving from CVS to git in a few weeks (and we have a training class scheduled with the github folks). That said our CI/build guys have already got gitorious set up (we get to it through ssh with ssh keys and one "git" user on the server) and we are in the process of migrating all new CVS checkins to a git repo. As a business decision we have decided to pull in some "staff augmentation". We don't want the remote developers to have direct access. Our plan is to have some sort of external repo on which they can push things, and locally we can pull those changes to our "official" repo and check it as we go. So far so good. Our product has several logically separate projects, which right now we have in the one big mega repo (in CVS, and migrating per checkin to Gitorious). So... I was wondering what the best way to split up our new repo might be - or is it best to NOT split it? One of the concerns we have is that in the one big repo we can't control access to the various projects. So far we haven't needed to but this might be because we couldn't. So one plan is to have multiple repos, and then a mirror of those for the remote devs. The other plan is to say "sod it" and have one local and one remote and just suffer through possible non-requirements of varying authorization profiles. Is there documentation I can refer to for this, or is there an obvious way to do these things? Any help or pointers appreciated. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Advice and repo setup 2013-04-06 17:51 Advice and repo setup Michael Campbell @ 2013-04-06 18:09 ` Seth Robertson 2013-04-07 6:12 ` Thomas Koch 2013-04-10 17:59 ` Jakub Narębski 2 siblings, 0 replies; 4+ messages in thread From: Seth Robertson @ 2013-04-06 18:09 UTC (permalink / raw) To: Michael Campbell; +Cc: git In message <CAKtB=OAot3y8fMjAf+Vh-=wOeX5b=F_N6_BLjK0fhGxGCg3Txg@mail.gmail.com>, Michael Campbell writes: As a business decision we have decided to pull in some "staff augmentation". We don't want the remote developers to have direct access. Our plan is to have some sort of external repo on which they can push things, and locally we can pull those changes to our "official" repo and check it as we go. So far so good. You might want to consider using something like gitolite where you can have control over which branches users can write to. Assuming you are not trying to restrict some branches of some repos from the external users, this would be a better solution than setting up another repo with some kind of automatic mirroring scheme, though that of course will also work. Our product has several logically separate projects, which right now we have in the one big mega repo (in CVS, and migrating per checkin to Gitorious). Certainly I'd recommend using one repo per conceptual unit. There are several techniques to group repos together if you need to. Is there documentation I can refer to for this, or is there an obvious way to do these things? Any help or pointers appreciated. http://sethrobertson.github.com/GitBestPractices/ -Seth Robertson ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Advice and repo setup 2013-04-06 17:51 Advice and repo setup Michael Campbell 2013-04-06 18:09 ` Seth Robertson @ 2013-04-07 6:12 ` Thomas Koch 2013-04-10 17:59 ` Jakub Narębski 2 siblings, 0 replies; 4+ messages in thread From: Thomas Koch @ 2013-04-07 6:12 UTC (permalink / raw) To: Michael Campbell; +Cc: git Michael Campbell: > So one plan is to have multiple repos, and then a mirror of those for > the remote devs. The other plan is to say "sod it" and have one local > and one remote and just suffer through possible non-requirements of > varying authorization profiles. You could also use Gerrit[1]. It's not only a code review server (and any team should have code review). It also hosts git repositories and you can write submit rules to reflect any possible write rule your company might have[2]. [1] http://en.wikipedia.org/wiki/Gerrit_%28software%29 [2] https://gerrit-review.googlesource.com/Documentation/prolog-cookbook.html Regards, Thomas Koch, http://www.koch.ro ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Advice and repo setup 2013-04-06 17:51 Advice and repo setup Michael Campbell 2013-04-06 18:09 ` Seth Robertson 2013-04-07 6:12 ` Thomas Koch @ 2013-04-10 17:59 ` Jakub Narębski 2 siblings, 0 replies; 4+ messages in thread From: Jakub Narębski @ 2013-04-10 17:59 UTC (permalink / raw) To: Michael Campbell; +Cc: git Michael Campbell wrote: > My company is moving from CVS to git in a few weeks (and we have a > training class scheduled with the github folks). > > That said our CI/build guys have already got gitorious set up (we get > to it through ssh with ssh keys and one "git" user on the server) Note that gitorious is git hosting software / software forge, i.e. combination of git hosting [configuration] software, web interface to repositories, and web-based administration. This is not the only solution. Among other all-in-one solutions are GitHUb:FI / GitHub Enterprise (proprietary and costly), InDefero, GitLab, Girocco + gitweb (what repo.or.cz uses). There are also pure web interfaces, and there are pure repository management software like gitosis (possibly unmaintained) and gitolite. I see GitHub Enterprise and GitLab both recommended as alternatives to Gitorious. But supposedly the most trouble is with installation, and you write that you "have already got gitorious set up". Unfortunately the Git Tools wiki page is not very actively maintained: https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools > and > we are in the process of migrating all new CVS checkins to a git repo. What tool do you use for that? Do you have tool selected to perform a full migration from CVS to Git (to have full history in Git), or will you cut off the history (perhaps stitching it later with historical repo with history imported from CVS, via grafts or git-replace), like Linux kernel did when moving from BitKeeper to Git? BTW. it might make sense if you have time to massage the history imported from CVS to remove CVS-related crufts and mishaps, e.g. with the reposurgeon tool (http://www.catb.org/esr/reposurgeon/) > As a business decision we have decided to pull in some "staff > augmentation". We don't want the remote developers to have direct > access. Our plan is to have some sort of external repo on which they > can push things, and locally we can pull those changes to our > "official" repo and check it as we go. So far so good. Another possible workflow is to have each of remote developers to get updates from central "blessed" official repository, but for each to have their own publishing repository they push to (and send pull requests about). Or maybe something hierarchical, with each group having their own repository... > Our product has several logically separate projects, which right now > we have in the one big mega repo (in CVS, and migrating per checkin to > Gitorious). Errr... didn't you use so called "modules" in CVS? Those usually translate to projects, which translate to git repositories. > So... I was wondering what the best way to split up our new repo might > be - or is it best to NOT split it? One of the concerns we have is > that in the one big repo we can't control access to the various > projects. So far we haven't needed to but this might be because we > couldn't. Split it, of course, into individual independent (more or less) project repositories. Note for example that you can tag (give name to a release) only whole repository. > So one plan is to have multiple repos, and then a mirror of those for > the remote devs. The other plan is to say "sod it" and have one local > and one remote and just suffer through possible non-requirements of > varying authorization profiles. It would also lead to slower operations (git works well with large number of files, but not necessarily with very large number of files), and increased storage (you can clone only whole repository even if nowadays you can check out only part of it; and you want for each developer to have their own private clone to work in). > Is there documentation I can refer to for this, or is there an obvious > way to do these things? Any help or pointers appreciated. -- Jakub Narębski ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-04-10 17:59 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-04-06 17:51 Advice and repo setup Michael Campbell 2013-04-06 18:09 ` Seth Robertson 2013-04-07 6:12 ` Thomas Koch 2013-04-10 17:59 ` Jakub Narębski
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 NNTP newsgroup(s).