From e1adce48eaaf1f83ed442ba07093f2f28ee5ecd9 Mon Sep 17 00:00:00 2001 From: Boud Roukema Date: Thu, 23 Apr 2020 02:25:43 +0200 Subject: 4.4 Project analysis - git branches Reduction by 15 words. "Branch" is fine as a verb, and "off" is fine as a preposition; there's no need for a second preposition. "We branched off the main forest path onto a smaller path". --- paper.tex | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'paper.tex') diff --git a/paper.tex b/paper.tex index 773f835..ab06c4c 100644 --- a/paper.tex +++ b/paper.tex @@ -626,12 +626,12 @@ For the current version of this paper, it expands to \projectversion. \subsection{Projects as Git branches of Maneage} \label{sec:projectgit} -Maneage contains only plain-text files, and therefore it can be maintained under version control systems (currently using Git). -Every commit in the version-controlled history contains \emph{a complete} snapshot of the data lineage (for more, see the completeness principle \ref{principle:complete}). -Maneage is maintained by its developers in a central branch, which we will call \inlinecode{man\-eage} hereafter. -The \inlinecode{man\-eage} branch contains all the low-level infrastructure, or skeleton, that is necessary for any project as described in the sections above. -As mentioned in Section \ref{sec:maneage}, to start a new project, users simply clone it from its reference repository and build their own Git branch over it -This is demonstrated in Figure \ref{fig:branching}(a) where a project has started by branching-off of commit \inlinecode{0c120cb}. +Maneage contains only plain-text files. It can thus be efficiently maintained under version control systems (currently using Git). +Every commit in the version-controlled history contains \emph{a complete} snapshot of the data lineage (see the completeness principle \ref{principle:complete}). +Maneage is maintained by its developers in a central branch, \inlinecode{man\-eage}. +The \inlinecode{man\-eage} branch contains all the low-level infrastructure, a skeleton, that is needed by any new project. +To start a new project (Section \ref{sec:maneage}), users clone \inlinecode{man\-eage} from its reference repository and build their own Git branch or fork. +This is demonstrated in Figure \ref{fig:branching}(a), where a project has started by branching off commit \inlinecode{0c120cb}. %% Exact URLs of imported images. %% Collaboration icon: https://www.flaticon.com/free-icon/collaboration_809522 @@ -641,7 +641,7 @@ This is demonstrated in Figure \ref{fig:branching}(a) where a project has starte \includetikz{figure-branching} \vspace{-3mm} \caption{\label{fig:branching} Harvesting the power of version-control in project management with Maneage. - Maneage is maintained as a core branch, with projects created by branching-off of it. + Maneage is maintained as a core branch, with projects created by branching off it. (a) shows how projects evolve on their own branch, but can always update their low-level structure by merging with the core branch (b) shows how a finished/published project can be revitalized for new technologies simply by merging with the core branch. Each Git ``commit'' is shown on their branches as colored ellipses, with their hash printed in them. @@ -650,14 +650,14 @@ This is demonstrated in Figure \ref{fig:branching}(a) where a project has starte } \end{figure} -After a project starts, Maneage will evolve, for example, new features will be added or low-level bugs will be fixed. -Because all projects branch-off from the same branch that these infrastructure improvements are made, updating the project's low-level skeleton is as easy as merging the \inlinecode{maneage} branch into the project's branch. -For example, in Figure \ref{fig:branching}(a), see how Maneage's \inlinecode{3c05235} commit has been merged into project's branch trough commit \inlinecode{2ed0c82}. +After a project starts, Maneage will evolve. For example, new features will be added or low-level bugs will be fixed. +Because all projects branch off the same branch that these infrastructure improvements are made, updating the project's low-level skeleton is as easy as merging the \inlinecode{maneage} branch into the project's branch. +For example, in Figure \ref{fig:branching}(a), see how Maneage's \inlinecode{3c05235} commit has been merged into project's branch through commit \inlinecode{2ed0c82}. This allows infrastructure improvements and fixes to be easily propagated to all projects. -Another useful scenario is reviving a finished/published project at later date, possibly by other researchers as shown in Figure \ref{fig:branching}(b), e.g., assuming the original project was completed years ago, and is no longer directly executable. +Another useful scenario is reviving a finished/published project at a later date, possibly by other researchers as shown in Figure \ref{fig:branching}(b), e.g., assuming the original project was completed years ago, and is no longer directly executable. Other scenarios include projects that are created by merging various other projects. -Modern version control systems provide many more capabilities that can be leveraged through Maneage in project management, thanks to the shared branch it has with \emph{all} derived projects, and that it is complete (\ref{principle:complete}). +Modern version control systems provide many more capabilities that can be leveraged through Maneage in project management, thanks to the shared branch it has with \emph{all} derived projects, and thanks to its completeness (\ref{principle:complete}). \subsection{Multi-user collaboration on single build directory} \label{sec:collaborating} -- cgit v1.2.1