query changed-files
Use the moon query changed-files sub-command to query for a list of changed files (added,
modified, deleted, etc) using the current VCS state. These are the same queries that
moon ci and moon run use under the hood.
Touches files are determined using the following logic:
- If
--defaultBranchis provided, and the current branch is thevcs.defaultBranch, then compare against the previous revision of the default branch (HEAD~1). This is what continuous integration uses. - If
--localis provided, changed files are based on your local index only (git status). - Otherwise, then compare the defined base (
--base) against head (--head).
# Return all files
$ moon query changed-files
# Return deleted files
$ moon query changed-files --status deleted
# Return all files between 2 revisions
$ moon query changed-files --base <branch> --head <commit>
This will output a list of workspace relative files as JSON. The output has the following structure:
{
files: string[],
options: QueryOptions,
}
Options
--default-branch- When on the default branch, compare against the previous revision.--base <rev>- Base branch, commit, or revision to compare against. Defaults tovcs.defaultBranch.--head <rev>- Current branch, commit, or revision to compare with. Defaults toHEAD.--local- Gather files from the local state instead of remote.--remote- Gather files from the remote state instead of local.--status <type>- Filter files based on a changed status. Can be passed multiple times.- Types:
all(default),added,deleted,modified,staged,unstaged,untracked
- Types:
Configuration
vcsin.moon/workspace.yml