It would be nice to get all VCS operations (commits, branches & tags) displayed in one single log, which would involve a "combined query" function and some code added to Commit Log. That can be done later though - what's more important is the underlying structure that makes it possible to query commits, branches and tags in one go. As a consequence, a common database table would be a nice thing, even if it only includes the respective ids. (I haven't researched if it's a good idea to include more common attributes - from a performance perspective, because then we'd need to join in this common table on each query. Might be cool, might not be. Anyways.)

In order to avoid later breaking of URLs, I'd like to unify commit, branch and tag ids into one single operation identifier. Thus we want to have an additional table {versioncontrol_operations} that includes the columns 'vcs_op_id' (name not fixed, just an idea) and 'operation_type' (= either of VERSIONCONTROL_OPERATION_COMMIT, VERSIONCONTROL_OPERATION_BRANCH or VERSIONCONTROL_OPERATION_TAG). Maybe also have some columns moved from the commit, branch and tag tables, depending on whether we want to do queries independently of the {versioncontrol_operations} table or not.

I would assume that the upgrade path (replacing old ids by the new ones, and keeping the chronological order) is more work than the actual implementation.

Comments

hunmonk’s picture

Assigned: Unassigned » hunmonk
Status: Active » Postponed (maintainer needs more info)

i'd like to take a crack at this, but the description you've provided leaves me a bit confused. do you think you could clarify, and perhaps talk more specifically about the final table structure you're envisioning?

jpetso’s picture

Priority: Normal » Critical

Pretty late here and I don't have the motivation right now to research this in more detail, but for easier upgradability it should really happen before the drupal.org conversion, because it affects the numbering of commit ids. Thus, raising the priority to "critical".

jpetso’s picture

Assigned: hunmonk » jpetso
Status: Postponed (maintainer needs more info) » Active

Sorry to steal this from you, but I'm taking this issue on. Halfway through, and oh yeah this is good stuff.

jpetso’s picture

Status: Active » Fixed

Phew... committed. I'd be grateful if you could test the upgrade path (even though I had a good share of testing already).

ezyang’s picture

Component: Code » API module
Status: Fixed » Closed (fixed)

Closing, as change was committed.

ezyang’s picture

Status: Closed (fixed) » Fixed

Changing back to fixed, as it looks like it still needs testing.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.