Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
jj-interdiff(1) 	     General Commands Manual		 jj-interdiff(1)

NAME
     jj-interdiff - Show differences between the diffs of two revisions

SYNOPSIS
     jj    interdiff   [-f|--from]   [-R|--repository]	 [--ignore-working-copy]
     [-t|--to]	[--no-integrate-operation]  [-s|--summary]  [--ignore-immutable]
     [--stat]	[--at-operation]  [--types]  [--debug]	[--name-only]  [--color]
     [--git] [--color-words] [--quiet] [--no-pager] [--tool] [--config]  [--con-
     text]  [--config-file]  [-w|--ignore-all-space]  [-b|--ignore-space-change]
     [-h|--help] [FILESETS]

DESCRIPTION
     Show differences between the diffs of two revisions

     This is like running `jj diff -r` on each change, then comparing those  re-
     sults.  It answers: "How do the modifications introduced by revision A dif-
     fer from the modifications introduced by revision B?"

     For example, if two changes both add a feature  but  implement  it  differ-
     ently,  `jj  interdiff  --from @- --to other` shows what one implementation
     adds or removes that the other doesn't.

     A common use of this command is to compare how a change has  changed  since
     the last push to a remote:

     ```sh $ jj interdiff --from push-xyz@origin --to push-xyz ```

     This  command  is	different from `jj diff --from A --to B`, which compares
     file contents directly. `interdiff` compares what the changes do  in  terms
     of  their patches, rather than their file contents. This makes a difference
     when the two revisions have different parents: `jj diff --from  A	--to  B`
     will include the changes between their parents while `jj interdiff --from A
     --to B` will not.

     Technically, this works by rebasing `--from` onto `--to`'s parents and com-
     paring the result to `--to`.

     To  see  the  changes throughout the whole evolution of a change instead of
     between just two revisions, use `jj evolog -p` instead.

OPTIONS
     -f, --from <REVSET>
	    The first revision to compare (default: @)

     -t, --to <REVSET>
	    The second revision to compare (default: @)

     -h, --help
	    Print help (see a summary with '-h')

     [FILESETS]
	    Restrict the diff to these paths

DIFF FORMATTING OPTIONS
     -s, --summary
	    For each path, show only whether it was modified, added, or deleted

     --stat
	    Show a histogram of the changes

     --types
	    For each path, show only its type before and after

	    The diff is shown as two letters. The  first  letter  indicates  the
	    type  before and the second letter indicates the type after. '-' in-
	    dicates that the path was not  present,  'F'  represents  a  regular
	    file,  `L'	represents a symlink, 'C' represents a conflict, and 'G'
	    represents a Git submodule.

     --name-only
	    For each path, show only its path

	    Typically useful for shell commands like: `jj diff -r @- --name-only
	    | xargs perl -pi -e's/OLD/NEW/g`

     --git  Show a Git-format diff

     --color-words
	    Show a word-level diff with changes indicated only by color

     --tool <TOOL>
	    Generate diff by external command

	    A builtin format can also be specified as  `:<name>`.  For	example,
	    `--tool=:git` is equivalent to `--git`.

     --context <CONTEXT>
	    Number of lines of context to show

     -w, --ignore-all-space
	    Ignore whitespace when comparing lines

     -b, --ignore-space-change
	    Ignore changes in amount of whitespace when comparing lines

GLOBAL OPTIONS
     -R, --repository <REPOSITORY>
	    Path to repository to operate on

	    By	default,  Jujutsu  searches for the closest .jj/ directory in an
	    ancestor of the current working directory.

     --ignore-working-copy
	    Don't snapshot the working copy, and don't update it

	    By default, Jujutsu snapshots the working copy at the  beginning  of
	    every  command.  The  working copy is also updated at the end of the
	    command, if the command modified the working-copy commit  (`@`).  If
	    you  want  to  avoid snapshotting the working copy and instead see a
	    possibly stale working-copy  commit,  you  can  use  `--ignore-work-
	    ing-copy`.	This  may be useful e.g. in a command prompt, especially
	    if you have another process that commits the working copy.

	    Loading the repository at a specific operation with `--at-operation`
	    implies `--ignore-working-copy`.

     --no-integrate-operation
	    Run the command as usual but don't integrate any operations

	    When this option is given, the operations will still be  created  as
	    usual  but	they  will  not  be integrated to the operation log. The
	    working copy will also not be updated.

	    The command will print the resulting operation ID. You can pass that
	    to e.g. `jj --at-op` to inspect the resulting repo state, or you can
	    pass it to `jj op restore` to restore the repo to  that  state.  You
	    can  also  pass  the ID to `jj op integrate` to integrate the opera-
	    tion.

	    Note that this does *not* prevent side effects outside the repo. For
	    example, `jj git push --no-integrate-operation` will  still  perform
	    the push.

     --ignore-immutable
	    Allow rewriting immutable commits

	    By default, Jujutsu prevents rewriting commits in the configured set
	    of	immutable  commits. This option disables that check and lets you
	    rewrite any commit but the root commit.

	    This option only affects the check. It  does  not  affect  the  `im-
	    mutable_heads()` revset or the `immutable` template keyword.

     --at-operation <AT_OPERATION>
	    Operation to load the repo at

	    Operation to load the repo at. By default, Jujutsu loads the repo at
	    the  most  recent operation, or at the merge of the divergent opera-
	    tions if any.

	    You can use `--at-op=<operation ID>` to see  what  the  repo  looked
	    like at an earlier operation. For example `jj --at-op=<operation ID>
	    st`  will  show you what `jj st` would have shown you when the given
	    operation had just finished. `--at-op=@` is pretty much the same  as
	    the default except that divergent operations will never be merged.

	    Use  `jj  op log` to find the operation ID you want. Any unambiguous
	    prefix of the operation ID is enough.

	    When loading the repo at an earlier operation, the working copy will
	    be ignored, as if `--ignore-working-copy` had been specified.

	    It is possible to run mutating commands when loading the repo at  an
	    earlier operation. Doing that is equivalent to having run concurrent
	    commands  starting at the earlier operation. There's rarely a reason
	    to do that, but it is possible.

     --debug
	    Enable debug logging

     --color <WHEN>
	    When to colorize output

	    Possible values:

		   * always

		   * never

		   * debug

		   * auto

     --quiet
	    Silence non-primary command output

	    For example, `jj file list` will still list files, but it won't tell
	    you if the working copy was snapshotted or if descendants  were  re-
	    based.

	    Warnings and errors will still be printed.

     --no-pager
	    Disable the pager

     --config <NAME=VALUE>
	    Additional configuration options (can be repeated)

	    The  name  should be specified as TOML dotted keys. The value should
	    be specified as a TOML expression. If string value isn't enclosed by
	    any TOML constructs (such as array notation), quotes can be omitted.

     --config-file <PATH>
	    Additional configuration files (can be repeated)

				   interdiff			 jj-interdiff(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jj-interdiff&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help