$ hg init hg-parent $ cd hg-parent $ mkdir dir $ cd dir $ cat <a.c > #include > int main() {printf("hello world");} > EOF $ hg add a.c $ hg commit -m "Added a.c" $ cd ../.. $ hg clone hg-parent hg-child 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd hg-child/dir $ cc a.c $ cd ../../hg-parent $ hg rename dir newdir copying dir/a.c to newdir/a.c removing dir/a.c $ hg commit -m "Renamed dir->newdir" $ cd ../hg-child $ hg pull -u pulling from /home/stevel/hg-parent searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files not in dirstate: dir/a.out! 2 files updated, 0 files merged, 1 files removed, 0 files unresolved $ cd newdir $ cc a.c $ hg st M newdir/a.out