Browse Source

Add the note about branching

Vadim Markovtsev 6 years ago
parent
commit
3060887b9c
2 changed files with 3 additions and 39 deletions
  1. 0 37
      OCTOPUS.md
  2. 3 2
      README.md

+ 0 - 37
OCTOPUS.md

@@ -1,37 +0,0 @@
-# Forks and merges in commit history
-
-Hercules expects the commit history to be linear.
-It follows the main (zero index) branch when it encounters a fork.
-This behavior ignores all the side branches, and we are currently
-thinking how to include them into the analysis.
-
-### Plan - done
-
-* Commits must be ordered topologically.
-* When a fork is hit, clone the pipeline. Assign the old instance to the main branch and new
-instances to the sprouts. BurndownAnalysis should share the same counters for efficiency
-and simplicity, but the files must be copied.
-* Follow each branch independently. Clone side pipelines as needed.
-* Join pipelines on merge commits. Side pipelines are killed, the main instance survives.
-This will be tricky for Burndown because we need to join the files together while preserving
-the line annotations. The plan is to calculate the separate line annotations for each branch and blend them,
-the oldest timestamp winning.
-* Merge commits should have diffs which correspond to CGit diffs. So far they represent the diff
-with the previous commit in the main branch.
-* The sequence of commits must be the analysis scenario: it must inform when to fork and to merge,
-which pipeline instance to apply.
-
-### New APIs - done
-
-* PipelineItem
-  * `Fork()`
-  * `Merge()`
-  
-### Major changes
-
-* `Pipeline` - done
-  * `Commits()` - done
-  * `Run()` - done
-* `Burndown` - done
-* `Couples` - done
-* `FileDiff` - done

+ 3 - 2
README.md

@@ -5,10 +5,11 @@ Amazingly fast and highly customizable Git repository analysis engine written in
 Powered by [go-git](https://github.com/src-d/go-git) and [Babelfish](https://doc.bblf.sh).
 Powered by [go-git](https://github.com/src-d/go-git) and [Babelfish](https://doc.bblf.sh).
 
 
 There are two tools: `hercules` and `labours.py`. The first is the program
 There are two tools: `hercules` and `labours.py`. The first is the program
-written in Go which takes a Git repository and runs a Directed Acyclic Graph (DAG) of [analysis tasks](doc/PIPELINE_ITEMS.md).
+written in Go which takes a Git repository and runs a Directed Acyclic Graph (DAG) of [analysis tasks](doc/PIPELINE_ITEMS.md) over the full commit history.
 The second is the Python script which draws some predefined plots. These two tools are normally used together through
 The second is the Python script which draws some predefined plots. These two tools are normally used together through
 a pipe. It is possible to write custom analyses using the plugin system. It is also possible
 a pipe. It is possible to write custom analyses using the plugin system. It is also possible
-to merge several analysis results together. There is a [presentation](http://vmarkovtsev.github.io/techtalks-2017-moscow-lightning/) available.
+to merge several analysis results together. The commit history includes branches, merges, etc.
+There is a [presentation](http://vmarkovtsev.github.io/techtalks-2017-moscow-lightning/) available.
 
 
 ![Hercules DAG of Burndown analysis](doc/dag.png)
 ![Hercules DAG of Burndown analysis](doc/dag.png)
 <p align="center">The DAG of burndown and couples analyses with UAST diff refining. Generated with <code>hercules --burndown --burndown-people --couples --feature=uast --dry-run --dump-dag doc/dag.dot https://github.com/src-d/hercules</code></p>
 <p align="center">The DAG of burndown and couples analyses with UAST diff refining. Generated with <code>hercules --burndown --burndown-people --couples --feature=uast --dry-run --dump-dag doc/dag.dot https://github.com/src-d/hercules</code></p>