DATALAD-CREATE-SIBLING(1)
π datalad create-sibling(1) β the "put ur dataset on a server" era
okay so bestie, welcome to the General Commands Manual entry for datalad create-sibling β¨ this is the one where you take a local dataset and give it a whole remote life on some UNIX-like machine you can reach via a shell (local or over SSH). it's giving "my dataset is moving out and getting its own apartment" π π
πΈ NAME πΈ
datalad create-sibling β create a dataset sibling on a UNIX-like Shell (local or SSH)-accessible machine π₯οΈπ¦
β¨ SYNOPSIS β¨
datalad create-sibling [-h] [-s [NAME]] [--target-dir PATH] [--target-url URL]
[--target-pushurl URL] [--dataset DATASET] [-r]
[-R LEVELS] [--existing MODE]
[--shared {false|true|umask|group|all|world|everybody|0xxx}]
[--group GROUP] [--ui {false|true|html_filename}]
[--as-common-datasrc NAME] [--publish-by-default REFSPEC]
[--publish-depends SIBLINGNAME] [--annex-wanted EXPR]
[--annex-group EXPR] [--annex-groupwanted EXPR] [--inherit]
[--since SINCE] [--version] [SSHURL]
π DESCRIPTION π
so. you've got a local dataset, and you've got a path or some SSH login info. this command does the iconic thing: it creates a remote dataset repository on that machine and configures it as a dataset sibling β aka a publication target, the thing you'll push to with the PUBLISH command π literally the glow-up your dataset deserves.
you can configure a bunch of properties of the remote sibling, like... the name, the location on the server, the read and write access URLs, and the access permissions π all the good stuff.
and optional bonus: a basic web-viewer for DataLad datasets can be installed at the remote location π cute right?
this command also supports recursive processing of dataset hierarchies β meaning it'll create a remote sibling for each dataset in the hierarchy π by default those remote siblings get created in a hierarchical structure that mirrors the organization on your local file system (very faithful, very loyal). BUT there's also a simple templating mechanism if you want to produce a flat list of datasets instead β peep --target-dir for that one π
π οΈ OPTIONS π οΈ
SSHURLβ login information for the target server, bestie. this can be given as a URL (ssh://host/path), SSH-style (user@host:path), or just a local path. unless you override it, this also serves as the future dataset's access URL and path on the server. constraints: value must be a string β¨-h,--help,--help-npβ show this help message.--help-npforcefully disables the use of a pager for displaying the help message (no pager, no drama, no cap π)-s [NAME],--name [NAME]β sibling name to create for this publication target. if RECURSIVE is set, the same name will be used to label all the subdatasets' siblings π·οΈ and when creating a target dataset fails, no sibling is added (no half-finished situations here, we don't do that). constraints: value must be a string or value must be NONE--target-dir PATHβ path to the directory on the server where the dataset shall be created. by default this is set to the URL (or local path) specified viaSSHURL. if a relative path is provided here, it's interpreted as being relative to the user's home directory on the server (or relative toSSHURL, when that is a local path) π‘
additional features are relevant for recursive processing of datasets with subdatasets. by default, the local dataset structure is replicated on the server. however, it's possible to provide a template for generating different target directory names for all (sub)datasets π templates can contain certain placeholders that are substituted for each (sub)dataset. for example: "/mydirectory/dataset%RELNAME". supported placeholders: %RELNAME β the name of the datasets, with any slashes replaced by dashes. constraints: value must be a string or value must be NONE
--target-url URLβ the "public" access URL of the to-be-created target dataset(s) (default:SSHURL). accessibility of this URL determines the access permissions of potential consumers of the dataset π as withtarget_dir, templates (same set of placeholders) are supported. also, if specified, it is provided as the annex description. constraints: value must be a string or value must be NONE--target-pushurl URLβ in case the TARGET_URL can't be used to publish to the dataset, this option specifies an alternative URL for this purpose π as withtarget_url, templates (same set of placeholders) are supported. constraints: value must be a string or value must be NONE--dataset DATASET,-d DATASETβ specify the dataset to create the publication target for. 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) or value must be NONE-r,--recursiveβ if set, recurse into potential subdatasets πͺ (yes, the doll thing)-R LEVELS,--recursion-limit LEVELSβ limit recursion into subdatasets to the given number of levels. constraints: value must be convertible to typeintor value must be NONE--existing MODEβ action to perform if a sibling is already configured under the given name and/or a target (non-empty) directory already exists π in this case, a dataset can be skipped ('skip'), the sibling configuration be updated ('reconfigure'), or process interrupts with error ('error').
β οΈ DANGER ZONE β οΈ if'replace'is used, an existing target directory will be forcefully removed, re-initialized, and the sibling (re-)configured (thus implies'reconfigure'). REPLACE could lead to data loss, so use with care π to minimize possibility of data loss, in interactive mode DataLad will ask for confirmation, but it would raise an exception in non-interactive mode. literally be careful bestie.
constraints: value must be one of ('skip', 'error', 'reconfigure', 'replace') [Default: 'error']
--shared {false|true|umask|group|all|world|everybody|0xxx}β if given, configures the access permissions on the server for multi-users (this could include access by a webserver! π). possible values for this option are identical to those ofgit init --sharedand are described in its documentation. constraints: value must be a string or value must be convertible to type bool or value must be NONE--group GROUPβ filesystem group for the repository. specifying the group is particularly important when--shared=groupπ₯ constraints: value must be a string or value must be NONE--ui {false|true|html_filename}β publish a web interface for the dataset with an optional user-specified name for the html at publication target. defaults toindex.htmlat dataset root πβ¨ constraints: value must be convertible to type bool or value must be a string [Default:False]--as-common-datasrc NAMEβ configure the created sibling as a common data source of the dataset that can be automatically used by all consumers of the dataset (technical:git-annexauto-enabled special remote) π--publish-by-default REFSPECβ add a refspec to be published to this sibling by default if nothing specified. constraints: value must be a string or value must be NONE--publish-depends SIBLINGNAMEβ add a dependency such that the given existing sibling is always published prior to the new sibling π«Ά this equals setting a configuration item'remote.SIBLINGNAME.datalad-publish-depends'. this option can be given more than once to configure multiple dependencies. constraints: value must be a string or value must be NONE--annex-wanted EXPRβ expression to specify 'wanted' content for the repository/sibling. seehttps://git-annex.branchable.com/git-annex-wanted/for more information. constraints: value must be a string or value must be NONE--annex-group EXPRβ expression to specify a group for the repository. seehttps://git-annex.branchable.com/git-annex-group/for more information. constraints: value must be a string or value must be NONE--annex-groupwanted EXPRβ expression for the groupwanted. makes sense only if--annex-wanted="groupwanted"and annex-group is given too. seehttps://git-annex.branchable.com/git-annex-groupwanted/for more information. constraints: value must be a string or value must be NONE--inheritβ if sibling is missing, inherit settings (git config,git annex wanted/group/groupwanted) from its super-dataset π§¬--since SINCEβ limit processing to subdatasets that have been changed since a given state (by tag, branch, commit, etc). this can be used to create siblings for recently added subdatasets π if'^'is given, the last state of the current branch at the sibling is taken as a starting point. constraints: value must be a string or value must be NONE--versionβ show the module and its version which provides the command π
π«Ά AUTHORS π«Ά
datalad is developed by The DataLad Team and Contributors <team@datalad.org> π iconic, honestly.
and that's the whole thing, bestie π this page is from datalad create-sibling 1.1.5, dated 2025-06-15 β go forth and give ur datasets the remote era they deserve π
β¨πΈ
π¦ where this page comes from
- debian trixie: datalad 1.1.5-2.1 Β· MIT
- ubuntu resolute: datalad 1.1.5-2.1 Β· MIT
- ubuntu stonking: datalad 1.1.5-2.1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms