---
name: "hg-copy"
section: "1"
platform: "linux"
package: "mercurial"
version: "7.2.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/hg-copy"
---

# hg-copy(1)

mark files as copied for the next commit

## NAME

hg copy - mark files as copied for the next commit

## SYNOPSIS

```
hg copy [OPTION]... (SOURCE... DEST | --forget DEST...)
```

## DESCRIPTION

Mark dest as having copies of source files. If dest is a directory, copies are put in that directory. If dest is a file, the source must be a single file.

By default, this command copies the contents of files as they exist in the working directory. If invoked with -A/--after, the operation is recorded, but no copying is performed.

To undo marking a destination file as copied, use --forget. With that option, all given (positional) arguments are unmarked as copies. The destination file(s) will be left in place (still tracked). Note that **hg copy --forget** behaves the same way as **hg rename --forget**.

This command takes effect with the next commit by default.

Returns 0 on success, 1 if errors are encountered.

## OPTIONS

- **--forget**

  unmark a destination file as copied

- **-A, --after**

  record a copy that has already occurred

- **--at-rev** *\<REV\>*

  (un)mark copies in the given revision (EXPERIMENTAL)

- **-f, --force**

  forcibly copy over an existing managed file

- **-I,***--include* **\<PATTERN\[+\]\>**

  include names matching the given patterns

- **-X,***--exclude* **\<PATTERN\[+\]\>**

  exclude names matching the given patterns

- **-n, --dry-run**

  do not perform actions, just print output

  \[+\] marked option can be specified multiple times

## ALIASES

```
cp
```
