# chg: make `chg --cwd \$anything -R \$relativepath` behave betterClosedPublic

Authored by valentin.gatienbaron on Apr 20 2022, 11:34 AM.

# Details

Reviewers
 Alphare
Group Reviewers
 hg-reviewers
Commits
rHG22fc694572ea: chg: make `chg --cwd \$anything -R \$relativepath` behave better
Summary

We're seeing this kind of issue:

```\$ (cd repo1; chg --cwd ../repo2 -R .)
chg: abort: too many redirections.
Please make sure \$path/hg is not a wrapper which changes sensitive environment variables before executing hg. If you have to use a wrapper, wrap chg instead of hg.
[255]```

chgserver is interpreting -R as relative to its cwd, instead of
relative to --cwd like regular hg does, which I think causes an

# Diff Detail

Repository
rHG Mercurial
Lint
 Automatic diff as part of commit; lint not applicable.
Unit
 Automatic diff as part of commit; unit tests not applicable.

### Event Timeline

valentin.gatienbaron edited the summary of this revision. (Show Details)Apr 20 2022, 11:35 AM
Alphare accepted this revision.Apr 20 2022, 11:55 AM
This revision is now accepted and ready to land.Apr 20 2022, 11:55 AM

I'll queue this on stable.

This revision was automatically updated to reflect the committed changes.

Unfortunately, this breaks a lot of the tests. I think the condition is too wide since wd is always populated at the top of the function.
https://foss.heptapod.net/mercurial/mercurial-devel/-/pipelines/53316

I'll prune the change, you can send it again in a different revision.

Oops, clearly I should have run all the tests.
Although even though I didn't realize that wd was filled in by the function, this should have merely caused small differences of output. We see that in the failures, but we also errors with hg -R union:..., so the change is maybe not quite right.