Currently, Diffusion allows you to enter an optional "Clone/Checkout As" name for repositories. This is used when constructing clone commands and clone URIs to make it easier to get a clone with a name you expect.
Historically, there was no meaningful validation on these names and you could enter garbage like `../..`. This garbage was never dangerous, but some garbage values did not work. T7938 has details.
After D14986, these names must adhere to a reasonable grammar and must be unique.
The associated migration will preserve valid, unique names, but discard duplicate or invalid names and emit a notification to the console.
Here are some valid names:
```
phabricator
sensible-repository
AReasonableRepositoryName
node.io
```
Here are some invalid names:
```counterexample
1
ABC
../../etc/passwd
$$O___O$$
''; SELECT * FROM passwords; /*
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
```
If a repository with an invalid name is dropped in the migration, use {nav Diffusion > (Choose a Repository) > Edit Repository > Edit Basic Information} to select a new, sensible, unique name.