DATALAD-PUSH(1)

πŸ’… datalad push β€” your dataset's ✨ moment to shine ✨

okay bestie so picture this: it's datalad push, from the General Commands Manual, and it's literally the command that gets your saved work out into the world 🫢


🌸 NAME 🌸

datalad push β€” push a dataset to a known sibling πŸ’«


πŸŽ€ SYNOPSIS πŸŽ€

datalad push [-h] [-d DATASET] [--to SIBLING] [--since SINCE] [--data
       {anything|nothing|auto|auto-if-wanted}]
       [-f {all|gitpush|checkdatapresent}] [-r] [-R LEVELS] [-J NJOBS]
       [--version] [PATH ...]

like yes, that's a lot of brackets, but you got this, i believe in you πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the vibe: this makes a saved state of a dataset available to a sibling β€” or to a special remote data store of a dataset. And listen, the target sibling has to already exist and be known to the dataset. no sneaky surprise siblings, periodt. ✨

By default, all files tracked in the last saved state (of the current branch) get copied to the target location. That's the default, that's the whole energy.

Optionally, you can limit a push to changes relative to a particular point in the version history of a dataset (like, say, a release tag πŸŽ€) using the --since option together with the specification of a reference dataset. Chef's kiss.

And in recursive mode, subdatasets get evaluated too β€” but only those subdatasets are pushed where a change was recorded that is reflected in the current state of the top-level reference dataset. iykyk 😌

NOTE β€” power-user info, bestie, pay attention πŸ‘‘: this command uses git push and git annex copy to push a dataset. Publication targets are either configured remote Git repositories, or git-annex special remotes (if they support data upload). no cap.

✨ OPTIONS ✨

  • PATH β€” path to constrain a push to. If you give it, only data or changes for those paths are considered for a push. Constraints: value must be a string or value must be NONE.
  • -h, --help, --help-np β€” show this help message. and --help-np forcefully disables the use of a pager for displaying the help message. forceful. iconic. πŸ’…
  • -d DATASET, --dataset DATASET β€” specify the dataset to push. Constraints: Value must be a Dataset or a valid identifier of a Dataset (e.g. a path) or value must be NONE.
  • --to SIBLING β€” name of the target sibling. If no name is given, an attempt is made to identify the target based on the dataset's configuration (i.e. a configured tracking branch, or a single sibling that is configured for push). Constraints: value must be a string or value must be NONE.
  • --since SINCE β€” specifies commit-ish (tag, shasum, etc.) from which to look for changes to decide whether pushing is necessary. 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.
  • --data {anything|nothing|auto|auto-if-wanted} β€” what to do with (annex'ed) data πŸ“:
    • 'anything' would cause transfer of all annexed content
    • 'nothing' would avoid call to git annex copy altogether
    • 'auto' would use git annex copy with '--auto' thus transferring only data which would satisfy "wanted" or "numcopies" settings for the remote (thus "nothing" otherwise)
    • 'auto-if-wanted' would enable '--auto' mode only if there is a "wanted" setting for the remote, and transfer 'anything' otherwise

Constraints: value must be one of ('anything', 'nothing', 'auto', 'auto-if-wanted') [Default: 'auto-if-wanted']

  • -f {all|gitpush|checkdatapresent}, --force {all|gitpush|checkdatapresent} β€” force particular operations, possibly overruling safety protections or optimizations πŸ”₯: use --force with git-push ('gitpush'); do not use --fast with git-annex copy ('checkdatapresent'); combine all force modes ('all'). Constraints: value must be one of ('all', 'gitpush', 'checkdatapresent').
  • -r, --recursive β€” if set, recurse into potential subdatasets. go deeper πŸŒ€
  • -R LEVELS, --recursion-limit LEVELS β€” limit recursion into subdatasets to the given number of levels. Constraints: value must be convertible to type 'int' or value must be NONE.
  • -J NJOBS, --jobs NJOBS β€” how many parallel jobs (where possible) to use. "auto" corresponds to the number defined by 'datalad.runtime.max-annex-jobs' configuration item.
NOTE β€” this option can only parallelize input retrieval (get) and output recording (save). DataLad does NOT parallelize your scripts for you. πŸ’€ like it said what it said.

Constraints: value must be convertible to type 'int' or value must be NONE or value must be one of ('auto',)

  • --version β€” show the module and its version which provides the command πŸ‘‘

πŸ’œ AUTHORS πŸ’œ

datalad is developed by The DataLad Team and Contributors <team@datalad.org>. absolute main characters, honestly.


🌈 sign-off 🌈

and that's the whole page, bestie β€” this was datalad push, version 1.1.5, dated 2025-06-15. now go push something iconic πŸ’…βœ¨πŸ§š

πŸ“¦ where this page comes from