Bug 3516 - hg status is broken after hg move with largefiles in subdir
Summary: hg status is broken after hg move with largefiles in subdir
Status: RESOLVED FIXED
Alias: None
Product: Mercurial
Classification: Unclassified
Component: largefiles (show other bugs)
Version: earlier
Hardware: PC Mac OS
: normal bug
Assignee: Bugzilla
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-06-24 11:10 UTC by Michal Sznajder
Modified: 2017-11-01 18:05 UTC (History)
5 users (show)

See Also:
Python Version: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michal Sznajder 2012-06-24 11:10 UTC
I think hg move breaks dirstate if largefiles are enabled and hg move is executed not from the top of repository. See following test example:

$ hg --version
Mercurial Distributed SCM (version 2.2.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ hg init mv_test_dir
$ cd mv_test_dir

# create nested directories with largefile in it
$ mkdir dira
$ mkdir dira/dirb
$ touch dira/dirb/largefile
$ hg add --large dira/dirb/largefile
$ hg commit -m added

# dive into repository
$ cd dira

# NOK some strange error
$ hg mv dirb dirb_moved
moving ../.hglf/dira/dirb/largefile to ../.hglf/dira/dirb_moved/largefile
abort: No such file or directory
$ hg commit -m moved

# NOK status broken and shows strange state
$ hg status
R dira/dirb_moved/largefile

# NOK content of dira is strange (notice dira is again in dira)
$ ls
dira       dirb_moved

hg update --clean fixes everything. workaround is to execute hg move from root of repository.
Comment 1 Matt Harbison 2012-07-26 00:32 UTC
Fix here: http://selenic.com/hg/rev/6e84171a61c8
Comment 2 Matt Mackall 2012-09-30 16:19 UTC
Mass close old bugs in testing.