---
name: "public-inbox-convert"
section: "1"
platform: "linux"
package: "public-inbox"
version: "1.9.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/public-inbox-convert"
---

# public-inbox-convert(1)

convert v1 inboxes to v2

## NAME

public-inbox-convert - convert v1 inboxes to v2

## SYNOPSIS

```
        public-inbox-convert [OPTIONS] OLD_DIR NEW_DIR
```

## DESCRIPTION

public-inbox-convert copies the contents of an old "v1" inbox into a new "v2" inbox.  It makes no changes to the old inbox and users are expected to update the "inboxdir" path in [**public-inbox-config**(5)](/public-inbox-config/5.md) to point to the path of NEW\_DIR once they are satisfied with the conversion.

## OPTIONS

- \--no-index

  Disables Xapian and overview DB indexing on the new inbox. By default, public-inbox-convert creates a new index in the v2 inbox and indexes all existing messages, a lengthy operation for large inboxes.

- \-j JOBS

  - \--jobs=JOBS

  Control the number of indexing jobs and Xapian shards of the v2 inbox.  By default, this is the detected CPU count but capped at 4 due to various bottlenecks.  The number of Xapian shards will be 1 less than the JOBS value, since there is a single process which distributes work to the Xapian shards.

- \-L LEVEL, --index-level=LEVEL

  - \-c, --compact

  - \-v, --verbose

  - \--no-fsync

  - \--sequential-shard

  - \--batch-size=BYTES

  - \--max-size=BYTES

  These options affect indexing.  They have no effect if "--no-index" is specified

  See [**public-inbox-index**(1)](/public-inbox-index/1.md) for a description of these options.

## ENVIRONMENT

- PI\_CONFIG

  The default config file, normally "~/.public-inbox/config". See [**public-inbox-config**(5)](/public-inbox-config/5.md)

## UPGRADING

Editing "~/.public-inbox/config" (or whatever `"PI_CONFIG"` is set to) will be required to start using the new directory.

## BUGS

Writes from [**public-inbox-mda**(1)](/public-inbox-mda/1.md) or [**git-fetch**(1)](/git-fetch/1.md) to the v1 inbox which occur after the start of the conversion will not be picked up in the v2 inbox.

Users of [**public-inbox-watch**(1)](/public-inbox-watch/1.md) do not have to worry about this.  They only need to update the config file to point to the v2 inbox, send `"SIGHUP"` public-inbox-watch process to reload the config file, and then `"SIGUSR1"` to rescan existing Maildirs.

## 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 2013-2021 all contributors \<mailto:meta@public-inbox.org\>

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

## SEE ALSO

[**public-inbox-init**(1)](/public-inbox-init/1.md), [**public-inbox-index**(1)](/public-inbox-index/1.md), [**public-inbox-config**(5)](/public-inbox-config/5.md), [**public-inbox-v1-format**(5)](/public-inbox-v1-format/5.md), [**public-inbox-v2-format**(5)](/public-inbox-v2-format/5.md)
