![]() ![]() Where this has broken down for us is in the scenario that follows. ![]() It is true, SVN does have a basic support for tracking vendor branches, but it is designed based on what CVS does, and that carries some significant limitations. We do hack on a lot of feature and custom branches, so we got this part well oiled You guys have quite a setup.Ĭool! Glad to be of help. Works on cygwin, too, so Windows users don't need to feel left out. This works on Linux and almost any Unix, including MacOSX. If you do try it, jump over to the mailing list (archive at ). To visualize how the changes go, you can use gitk which is included, or qgit, a very qute Qt UI. The output of git-format-patch is also good when 1.6 comes out and you have to reapply your patches to the new version. To export the individual patches that make up your local customizations in a format that is good to post to forums/bugtrackers: git-format-patch -mbox -signoff origin # cleanly, it will ask you to fix up conflicts if To bring in any new changes from the 1.5.x branch, you just do # brings in the changes, will autocommit if it merges To see your local changes, just do # commit entries that are local Hacking sessions go like this: # similar to cvs status In the resulting checkout, you'll see that there are two 'heads' (git's name for branches): master (yours) and origin (the one on the public repo).Īnd then you can just hack on it freely, commit to your local repo - those commits show up on 'master'. To try with Cogito (which is the cvs-like interface to GIT), install a recent version of GIT and Cogito, and do cg-clone moodle We are currently maintaining a CVS2GIT gateway - feel free to use it to track the Moodle 'upstream' as we will be maintaining it for a long time Alternatives would be BitKeeper, Mercurial, Monotone and BazaarNG - of those, BitKeeper is the only really mature tool, and it is proprietary and expensive. I definitely recomend that you try GIT or a similar SCM. The third attempt - with GIT and Cogito - is going great. We used Arch for about a year, and we found that it had huge performance/scalability problems, and it didn't support tracking an upstream very well. ![]() Next we worked with patch-oriented SCMs (ie: Arch/Bazaar and Darcs). What I found is that CVS, SVN/SVK and similar won't help you much - in fact, they won't help you at all. Our team (Hi Penny!) tracks several upstream projects (GForge/phpWiki/Serendipity for, and Moodle for our custom Moodle setups).Īt work we use a lot of different SCMs. You are going to need a very good SCM to help you do that. What you are after is usually called "tracking the vendor branch" or "tracking upstream" (both phrases give you good Google results). Hope that's food for thought! I'm sure Martin L will chime in with more comments as his git-fu is stronger than mine There's a lot of other heads there as well - some of them (the ones starting with moodle-) are from when we were migrating from arch to git. Git doesn't really think about them as 'branches' but I use that terminology as it'll be familiar to you with svn & cvs. MOODLE_15_STABLE is upstream, mdl-local is our generic custom branch and then you'll also see mdl-topnz and mdl-nmit which are essentially branched off mdl-local. You can see this all in action here: a=heads Using gnu arch / tla was ok for awhile but was very slow and caused conflicts when patches came back from cvs - if we committed something to mdl-local and then merged it with MOODLE_15_STABLE, it would conflict coming back, but git is smart enough to see that it's the same patch and not cause conflict. When we update MOODLE_15_STABLE branch to mdl-local we then merge everything on mdl-local to the other ones. Then off that branch we have any further branches for installs that need really specific customisations that don't have anything in common with the other ones. Then we have a branch off that called mdl-local which we use to develop any customisations that we want to go to all of our installs (and most of which we plan to merge into HEAD for 1.6) We have an 'upstream vendor branch' which tracks the MOODLE_15_STABLE tag, when we had it in arch we updated it manually, but Martin Langhoff has set up an automatic cvs -> git script. We started off life using gnu arch as our internal scm, and have since switched to git. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |