|
|
**Table of contents**
|
|
|
|
|
|
[[_TOC_]]
|
|
|
# Updates, Git and Version Control
|
|
|
**EEGLAB**
|
|
|
This pipeline uses the BUCANL [eeglab_asr_amica](https://git.sharcnet.ca/bucanl_eeglab/eeglab_asr_amica) version of EEGLAB.
|
|
|
You can determine if this version of EEGLAB is updated by checking through the website or by using git.
|
|
|
|
|
|
Even if your pipeline does not contain the most updated version of the associated BUCANL EEGLAB it should still work as designed, and also remember to use the recursive command when cloning the repository in order to get each of the sub modules.
|
|
|
# Git
|
|
|
Navigate to your project using the *cd* command. Using *git status* you will be able to see any new developments to sub modules in the untracked changes as **(modified content)**. Proceeding to the eeglab_asr_amica folder and preforming *git status* again will yield something like this:
|
|
|

|
|
|
This shows the changes that have happened in the nested sub modules.
|
|
|
You can also see that the current **HEAD** is listed at the top. If you are on the most updated version this will instead say *master* and no HEAD branch will appear.
|
|
|
*git branch* on one of the sub modules shows that the current head is not the master but on a previous commit:
|
|
|

|
|
|
In order to update a specific sub module you can:
|
|
|
```matlab
|
|
|
cd /location/of/submodual
|
|
|
checkout master
|
|
|
git pull
|
|
|
# Checking for updates
|
|
|
If you cloned your project from [our remote](https://git.sharcnet.ca/bucanl_pipelines/eeg_pipe_asr_amica) updating your project from git is easy.
|
|
|
|
|
|
Check the `VERSION` file in the root of your project, compare the version of your project with [the version here](https://git.sharcnet.ca/bucanl_pipelines/eeg_pipe_asr_amica/blob/master/VERSION)
|
|
|
|
|
|
The version follows semver standard and therefore major updates update the 'a' in a.b.c, minor updates update the 'b', and bug fixes and other changes update the 'c'. You should expect minor updates to not break your pipeline whereas major updates are expected to.
|
|
|
|
|
|
# Updating
|
|
|
If you've decided to update you need to update all the submodules to the correct version with that the main eeg_pipe_asr_amica repo is built against. Therefore do the following.
|
|
|
|
|
|
```
|
|
|
cd /path/to/your/project/dir
|
|
|
git pull --recurse-submodules origin master
|
|
|
```
|
|
|
You will need to do this on **both** your local machine **and** any remote servers.
|
|
|
|
|
|
This will fetch the remote branch (origin/master) and merge it into your local history. Most of the time this will fast forward your branch history to the point origin/master is in. This will also update any git submodules to the correct version of those git repositories.
|
|
|
|
|
|
# Common git problems
|
|
|
## My eeglab_asr_amica directory is empty
|
|
|
You likely forgot to use --recursive when you originally cloned the repo. No worries, checkout the correct version of the submodules with
|
|
|
|
|
|
```
|
|
|
or you can update all of the sub modules at once by preforming the following:
|
|
|
```matlab
|
|
|
cd /location/of/project
|
|
|
git submodule foreach git pull
|
|
|
git submodule update --init --recursive
|
|
|
```
|
|
|
This will pull the origin master from the repository and overwrite your local repository. If you use *git status* again you will be on the master HEAD.
|
|
|
# Website
|
|
|
In order to determine which BUCANL EEGLAB update you are using navigate to the eeglab directory in this **Pipeline** Project.
|
|
|

|
|
|
You should see a brief code such as *@2a691adf* proceeding the EEGLAB link which is the version identifier.
|
|
|
Proceed to the network tab of **EEGLAB** project. You should see that in this pipeline there is a version code that matches the start of the this EEGLAB version code. This is the commit that you are currently using.
|
|
|
|
|
|

|
|
|
|
|
|
***
|
|
|
|
|
|
[ :house: **Return to Main Page**](https://git.sharcnet.ca/bucanl_pipelines/eeg_pipe_asr_amica/wikis/home) |
|
|
\ No newline at end of file |