---
name: "lei-p2q"
section: "1"
platform: "linux"
package: "lei"
version: "2.1.0-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/lei-p2q"
---

# lei-p2q(1)

use a patch to generate a lei-q query

## NAME

lei-p2q - use a patch to generate a lei-q query

## SYNOPSIS

lei p2q \[OPTIONS\] (FILE\|COMMIT)

lei p2q \[OPTIONS\] (--stdin\|-)

## DESCRIPTION

Given a patch, create a query that can be fed on stdin to [**lei-q**(1)](/lei-q/1.md). This is useful for mapping the patch to associated messages of an inbox.

The patch can be provided on stdin or as a file.  Alternatively, when an argument is given that does not point to an existing file, it is taken as a reference to a commit in the current git repository, and [**git-format-patch**(1)](/git-format-patch/1.md) is used to generate the patch.

## OPTIONS

- \-w PREFIX\[,PREFIX\]

  - \--want=PREFIX\[,PREFIX\]

  Search prefixes to use.  `"dfpost"` (post-image git blob ID) and `"dfn"` (file names from the diff) are the most useful.  Other available values are `"dfa"`, `"dfb"`, `"dfctx"`, `"dfhh"`, and `"dfpre"`.

  Appending an integer to `"dfpost"` or `"dfpre"` indicates a minimum ID length, and the generated query will be for that value up through the default abbreviation length.  For example, if the repository's `"core.abbrev"` is set to `"auto"` and git calculates the default abbreviation length as 7, `"dfpost6"` will expand a post-image blob ID of e7b4b32 (seven characters) into `"dfpost:e7b4b32 OR dfpost:e7b4b3"`.

  This option may be given multiple times.

  Default: `"dfpost7"`

- \--stdin

  Read message from stdin.  This is implicit if no arguments are given and stdin is a pipe or regular file.

- \--debug

  Dump output that shows the information collected for every prefix. This information can be useful for seeing how a patch is processed, but the format should not be considered stable.

- \--uri

  URI escape output for interacting with HTTP(S) public-inbox instances.

- \-q

  - \--quiet

  Suppress feedback messages.

## EXAMPLES

```
  # to search for all threads which touch a given thread:
  lei p2q $COMMIT_OID | lei q -t -o /tmp/results
  # to view results on a remote HTTP(S) public-inbox instance
  $BROWSER https://example.com/pub-inbox/?q=$(lei p2q --uri $COMMIT_OID)
  # to view unapplied patches for a given $FILE from the past year:
  echo \( rt:last.year.. AND dfn:$FILE \) AND NOT \( \
        $(git log -p --pretty=mboxrd --since=last.year $FILE |
                lei p2q -F mboxrd )
        \) | lei q -o /tmp/unapplied
```

## CONTACT

Feedback welcome via plain-text mail to \<mailto:meta@public-inbox.org\>

The mail archives are hosted at \<https://public-inbox.org/meta/\> and \<http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/\>

## COPYRIGHT

Copyright all contributors \<mailto:meta@public-inbox.org\>

License: AGPL-3.0+ \<https://www.gnu.org/licenses/agpl-3.0.txt\>

## SEE ALSO

[**lei-q**(1)](/lei-q/1.md)
