Charon

From CUSF Wiki
Revision as of 17:27, 28 April 2021 by EllieClifford (talk | contribs) ("More detailed Charon docs")
Jump to navigation Jump to search

This page is unfinished

Charon is an integration between Git and SolidWorks, designed by Henry Franks and Tim Clifford to eliminate the re-occuring problem of having \>10 versions of a CAD assembly on the Google Drive (with only one person understanding it).

The GitHub repository can be found here. It is developed by Tim and Henry seperately from CUSF (and thus not under the cuspaceflight organisation) but you are welcome to contribute.

It is assumed that you understand Git, please read that page first. Charon aims to keep the overall workflow as similar as possible to using Git for code, with two important differences:

Features and Usage

Enhanced diffs

Without Charon, all git diff can tell you is that two files are different. With charon enabled, git diff will open SolidWorks to show you an interactive, graphical diff between the files, like this:

TODO: example image

Usable mergetool

Charon makes merging branches actually possible (but it will never be that easy...). A merge conflict will be presented in the same way:

TODO: Example conflict
<source>

But on running <code>git mergetool</code>, you will be presented with a menu
like this:

<source>
TODO: Example mergetool menu

The options are fairly self explanatory.

TODO: another screenshot

Installation

Enabling Charon in a repository

To enable Charon in an existing repository, add it as a submodule and run the setup script:

git submodule add https://github.com/smh-my-head/charon
git submodule update --init
./charon/setup.sh

Cloning a repository that uses Charon

When cloning a repository that uses Charon, you will need to need to run the setup script. Something like:

git clone https://github.com/cuspaceflight/repository-that-uses-charon
cd repository-that-uses-charon
git submodule update --init
./charon/setup.sh

Updating Charon

You may want to update Charon if improvements are made. To do this, update the submodule and then run the setup script again (each user will need to run the setup script):

git submodule update --remote
./charon/setup.sh