Size: 2311
Comment:
|
Size: 2325
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 13: | Line 13: |
''Is that actually wanted, though? I think people might prefer seeing only revisions created since branching.'' — AaronBentley ''I think you are right for most branches. Developers of feature branches are only concerned with those since branching, but there are trunk branches where the information is (slightly) useful. Ideally I'd like this to come from loggerhead.'' — TimPenhey |
* ''Is that actually wanted, though? I think people might prefer seeing only revisions created since branching.'' — AaronBentley * ''I think you are right for most branches. Developers of feature branches are only concerned with those since branching, but there are trunk branches where the information is (slightly) useful. Ideally I'd like this to come from loggerhead.'' — TimPenhey |
Line 19: | Line 19: |
''What about just keeping track of which branch introduced the revision?'' — AaronBentley ''This approximation is probably fine.'' — TimPenhey |
* ''What about just keeping track of which branch introduced the revision?'' — AaronBentley * ''This approximation is probably fine.'' — TimPenhey |
Line 22: | Line 22: |
''Is the branch relevant here, or just the project/package?'' — AaronBentley ''Just the project/package that the branch is connected to.'' — TimPenhey |
* ''Is the branch relevant here, or just the project/package?'' — AaronBentley * ''Just the project/package that the branch is connected to.'' — TimPenhey |
Line 28: | Line 28: |
I feel that this use case is the harder one to solve if we keep a limited ancestry. | * I feel that this use case is the harder one to solve if we keep a limited ancestry. |
Branches and Revisions
The links between branches and revisions are currently (Sep 2010) handled using the BranchRevision table. There is one row in this table for every revision in the branch. This is mildly insane for the number of feature branches that we encourage projects to use as the vast majority of the revisions are common to the branches.
Consider the Launchpad project itself. There are over 90k revisions in the ancestry, so every branch adds 90k rows to the BranchRevision table.
Before we can simplify, reduce and clean up this relationship, we need to understand what the entries are used for.
Uses for the BranchRevision table.
- Branch page
- shows the recent commits for any given branch, up to 10, and includes those already in trunk
Is that actually wanted, though? I think people might prefer seeing only revisions created since branching. — AaronBentley
I think you are right for most branches. Developers of feature branches are only concerned with those since branching, but there are trunk branches where the information is (slightly) useful. Ideally I'd like this to come from loggerhead. — TimPenhey
- shows the recent commits for any given branch, up to 10, and includes those already in trunk
- Merge proposal page
- unmerged revisions (up to 10 - confusing ui)
- commits since the start of the review
- Finding the most relevant branch for any given revision (primarily used in the revision feeds)
What about just keeping track of which branch introduced the revision? — AaronBentley
This approximation is probably fine. — TimPenhey
- Allocating revision karma
Is the branch relevant here, or just the project/package? — AaronBentley
Just the project/package that the branch is connected to. — TimPenhey
- Merge detection in the scanner
- Is the tip of this branch in the ancestry of the development focus branch?
- And if scanning a series linked branch, is the tip of any unmerged branches of the same target present in my ancestry?
- I feel that this use case is the harder one to solve if we keep a limited ancestry.
Meta: For revision feeds and karma, it seems like we're using a list of all branches containing the revision to find a single branch containing the revision-- if we just store the single branch, we can be more efficient.