Revision Control Systems

This group provides one purpose:

Coordination about whether and how the Drupal.org code repository should be moved away from CVS to something else.

Note that as of fall 2007 this is largely a moot point - until Drupal.org is upgraded to Drupal6 there is no bandwidth among the infrastructure maintainers to handle this project. To move forward sooner would require surprising amounts of coordination and effort on a new contributor's part. Of course, discussion and work towards this end (via the revision control API module) will pay benefits now and down the road.

Before writing here, be sure that you are familiar withthe many posts by jpetso about revision control systems the new release system and our issue tracking system.

adrian's picture

A critical look at the implementation of Plugin Manager - Underlying issues and possible solutions

I have been harboring some growing concerns about the direction of the plugin manager integration proposals for Drupal core almost since their inception, but have not been able to make an informed opinion on the subject until I had properly reviewed the proposed system on a much deeper scale.

While my impressions of the project and the current implementation are fairly negative, I have aimed to frame my criticisms in a positive constructive manner because I believe that the goals of the project are worthwhile, and that for a large section of users this could be a very flexible and usable solution.

Unfortunately a lot of my concerns have been well founded, and I believe that the implementation of this system needs to be taken in a different direction for it to be able to succeed in its goals, while not negatively affecting projects like Aegir, Open Atrium and many other ‘serious developers’.

85 comments · Read more · 4 attachments
anarcat's picture

Aegir code (and drush!) now accessible through git

I have finally got around tackling git-cvsimport. After a little bit of tweaking around, I've been able to import the entire history of the various Aegir projects on Drupal.org in our git repositories. This will enable much easier collaboration and decentalised development.

4 comments · Read more
dhax's picture

Version Control API gathering #6 - June 21, 2009, on IRC

A good talk this week, with a lot of stuff to say.

  • DamZ dropped by to discuss some of the issues and strategies surrounding the eventual migration of drupal.org to the versioncontrol api. Maintaining the existing links could be a challenge, since they are dependent on the particular entries in cvs.module's cid field.
Login to post comments · Read more
dhax's picture

Issues to consider for multiple project branches

One part of my GSoC is to add support (of some sort) to VersionControl API for having multiple branches within a project (like a drupal.org project) with different user permissions. The idea is to allow a more DVCS-like workflow, where people can work independently on their own branch and then request an admin user to pull their changes into the master repository. I won't be starting this for a few weeks, but I wanted to get a discussion going about what it should look like.

3 comments · Read more
jpetso's picture

Version Control API gathering #5 - June 14, 2009, on IRC

Whoa, seems I skipped one set of logs again. Anyways, here's what we discussed last Sunday. This time with even nicer formatting.
Topics include:

  • Conceptual issues for dhax's Git hooks (→ using the 'update' hook for permission control so that branch pushes don't depend on other branches' validity)
  • The future of source items in the main API module (→ we want them as an optional bonus instead of a log-parse-time requirement)
  • Proper merging of commits from Git into CVS (→ git cvsexportcommit allows an "-m" option for prefixing a string to the commit message)
Login to post comments · Read more
dhax's picture

How to handle Git (or other VCS) allowed branch/tag names?

I'm working on the Git hooks (specifically the 'update' hook right now) and am trying to figure out what sorts of things we would want in a pre-commit (or pre-push, in the case of DVCSs) hook.

What I have now

For now, I have only been checking whether the user attempting to push has an account with the given repository. Combined with the "admin must approve accounts" setting on repositories, this seems good enough to be useful.

4 comments · Read more
jpetso's picture

Version Control API gathering #3 - May 31, 2009, on IRC

Ok, so gathering #2 was largely technical and a bit unfocused at times, I won't post that one because it probably won't make such a good read if you haven't been in #drupal-vcs in the first place. Today's gathering #3 seemed more interesting to me, and focused largely on workflow issues. The core outcome (imho) is that the students will post short daily "micro-blogging" updates so that mentors stay up to date on the status even if no progress is made for any reason. Using a dedicated d.o issue and/or Twitter respectively identi.ca for these purposes. We also follow each other on Github now.

If all goes well, the students should be pushing out their first weekly updates by tomorrow evening, which will also be tracked in a d.o issue (as discussed earlier). Complete log of today's IRC meeting follows below.

Login to post comments · Read more
dhax's picture

Refactoring common parts of xcvs-config.php, xsvn-config.php, etc.

While perusing the xcvs code, I noticed that xcvs-config.php had a fair amount of code which was very non-cvs-specific, like xcvs_bootstrap and xcvs_get_temp_directory. These functions will be mostly or entirely identical for all backend hooks, so why not move them somewhere common, like in the versioncontrol module.

It might make loading a bit more complicated, and it really isn't that much code (and seems fairly unlikely to change, so there won't be a big problem of keeping a lot of copied code in sync), so it probably isn't worth it if there is too much involved.

2 comments
jpetso's picture

Version Control API now mirrored on Github

At least for the duration of SoC 2009, we're shifting upstream development of Version Control API to Github, with regular syncs from and to Drupal CVS. Feel free to fork one or more of the modules into your own branch, commit and push your own changes without upstream approval, and send merge pull requests when the feature is done.

This move is being done because both of our SoC students as well as at the majority of mentors is fluent in Git, and the simultaneously developing branches is made a lot easier with a distributed version control system.

5 comments · Read more
jpetso's picture

Version Control API gathering #1 - May 17, 2009, on IRC

Our first all-inclusive meetup, featuring both students (marvil07 and chrono325, now known as dhax) and two of three mentors (jpetso and sdboyer-laptop). Covered topics include development goals, workflow issues (using "gsoc2009" as well as "gsoc2009-marvil07" and "gsoc2009-chrono325" tags for issues), student development repositories (pushing everything onto Github for the time being), and how to manage further communication (there's going to be a weekly IRC meeting, every Sunday at 18:30 UTC). All subsequent logs will be tracked in the d.o issue http://drupal.org/node/470722.

Login to post comments · Read more

Git and Drupal Core workflow

This are just some random ideas about how we could organize drupal core development when/if it would be powered by git.
Every (core) dev can request a personal git repo for drupal development. Here he can push his stuff too, in a special layout.
The branches are named after issues the dev is assigned to. The base for them is the current HEAD (it's left to the dev pulling it in before starting his work!). Then the dev develops his patch. Whenever needed, he pulls the current HEAD in. When he's done with his patch, he uses a special tag name, and the magic starts:

5 comments · Read more
marvil07's picture

Version Control API and family changes

Overview

This project objective is provide all tools to make it easy a possible drupal.org migration to another Version Control System(aka VCS). By the way, after this, drupal VCS's interaction will be improved, so it provides more flexibility to use it as project managment system for development.

This propose started like a jpetso propose.

Introduction

Some drupal.org developer tools, like the auto-releasing module versions feature, are CVS dependent, which is one of the reasons why drupal project is using CVS now.
Drupal developers are used to recognize others work, so it would be really natural to use a Distribututed Version Control System(aka DVCS) where this concept is implicit(authors and commiters can differ).
On GSoC 2007, Jakob Petsovits developed Version Control API, making it possible to integrate various VCS backends in drupal.
I'm really interested on VCS's, and specially dreaming about commiting to drupal with git(that's why I wrote a guide for maintainers).
Now, there are some details that make Jakob solution not production ready, so I want to take it all to this state.

Login to post comments · Read more
marvil07's picture

Updating "why drupal use CVS" FAQ

Trying to find a way to convince some of my class students, I found a solution on top of mysysGIT, tortoisegit, already usable since march 2009 :D

So, now git has an option as "usable by tortoise like users".

4 comments · Read more
jpetso's picture

Version Control API BoF session

For everyone at DrupalCon - just in case you missed the BoF wall or the DrupalCon BoF forums - well, you guessed it: there's a Version Control API BoF taking place on Friday at 3:45, in room 141 of the convention center. Be there, or be triangular!

Login to post comments · Read more · 1 attachment
jpetso's picture

Version Control API in Drupal 6 and beyond

It's been a long time since I last posted an update on the state of the Version Control API, assuming we disregard short teasers on Planet Drupal. Since this last article, Version Control API nearly died during my attempts to wholly restructure the data model for practically everything involving commits, branches & tags (now unified as "labels") and repository items (= files and directories). Luckily, the story has come to a good end. Well, "end"? Depends.

1 comment · Read more
danieldembach's picture

Subversion 'mirror'

We recently set up a public Subversion repo automatically tracking some of D.O. CVS. Module/theme selection is quite limited (~150 modules, 10 themes) -- more modules will be added upon request. We especially like using it with a private project repo and svn:externals, pulling in all the standard modules and their dependencies (e.g. devel+Krumo+FirePHP).

Please do give it a spin and let me know how you feel about it:
http://subversible.com/
http://subversible.com/svn/

1 comment

cvs contrib procedure

When I gained cvs access, I read the drupal book pages on cvs and also merlinofchaos blog, and polled irc drupal-support.

What I came up with was that there are 2 ways of maintaining releases for contributed modules.

1) Always have the latest code in head, and only release a branch when the new version of drupal comes out. For example when working with module and it is for drupal5 the code is found under HEAD, when the module is upgraded for drupal6, create a branch DRUPAL-5 for the drupal5 module.

37 comments · Read more
julma's picture

What is biggest drupal project you have ever managed ? (size in man-days)

Less than 50 man-days
30% (24 votes)
Between 50 man-days and 200 man-days
25% (20 votes)
Between 200 and 1000 man-days
30% (24 votes)
More than 1000 man-days
16% (13 votes)
Total votes: 81
1 comment
catch's picture

Refactor revisions to use a version control system

Proposal added to official ideas list at http://drupal.org/node/237619

The node_revisions table currently stores a full copy of everything for every revision.

For space considerations it would make a lot of sense to store it as diffs instead.
Many sites like drupal.org also have issues with simultaneous editing - using diffs might allow for merging of edits rather than the current locking system.

Note that in D7 core, node_revisions may well be handled similarly to CCK fields - so something extensible to both models is likely to have the most chance of future use.

19 comments · Read more
Syndicate content