Scroll to navigation

datalad update(1) General Commands Manual datalad update(1)


datalad update - update a dataset from a sibling.


datalad update [-h] [-s SIBLING] [--merge [ALLOWED]] [--follow {sibling|parentds}] [-d DATASET] [-r] [-R LEVELS] [--fetch-all] [--reobtain-data] [PATH ...]



Update from a particular sibling::

% datalad update -s <siblingname>

Update from a particular sibling and merge the changes from a configured or matching branch from the sibling (see --follow for details)::

% datalad update --merge -s <siblingname>

Update from the sibling 'origin', traversing into subdatasets. For subdatasets, merge the revision registered in the parent dataset into the current branch::

% datalad update -s origin --merge --follow=parentds -r


constrain to-be-updated subdatasets to the given path for recursive operation. Constraints: value must be a string

-h, --help, --help-np
show this help message. --help-np forcefully disables the use of a pager for displaying the help message
-s SIBLING, --sibling SIBLING
name of the sibling to update from. If no sibling is given, updates from all siblings are obtained. Constraints: value must be a string
--merge [ALLOWED]
merge obtained changes from the sibling. If a sibling is not explicitly given and there is only a single known sibling, that sibling is used. Otherwise, an unspecified sibling defaults to the configured remote for the current branch. By default, changes are fetched from the sibling but not merged into the current branch. With --merge or --merge=any, the changes will be merged into the current branch. A value of 'ff-only' restricts the allowed merges to fast-forwards. Constraints: value must be convertible to type bool, or value must be one of ('any', 'ff-only') [Default: False]
--follow {sibling|parentds}
source of updates for subdatasets. For 'sibling', the update will be done by merging in a branch from the (specified or inferred) sibling. The branch brought in will either be the current branch's configured branch, if it points to a branch that belongs to the sibling, or a sibling branch with a name that matches the current branch. For 'parentds', the revision registered in the parent dataset of the subdataset is merged in. Note that the current dataset is always updated according to 'sibling'. This option has no effect unless a merge is requested and --recursive is specified. Constraints: value must be one of ('sibling', 'parentds') [Default: 'sibling']
-d DATASET, --dataset DATASET
specify the dataset to update. If no dataset is given, an attempt is made to identify the dataset based on the current working directory. Constraints: Value must be a Dataset or a valid identifier of a Dataset (e.g. a path)
-r, --recursive
if set, recurse into potential subdataset.
-R LEVELS, --recursion-limit LEVELS
limit recursion into subdataset to the given number of levels. Constraints: value must be convertible to type 'int'
this option has no effect and will be removed in a future version. When no siblings are given, an all-sibling update will be performed.
if enabled, file content that was present before an update will be re-obtained in case a file was changed by the update.


datalad is developed by The DataLad Team and Contributors <>.
2021-02-04 datalad update 0.14.0