status and commit uses different algorithms to find changes

Alexander Belchenko bialix at ukr.net
Wed Oct 8 14:02:57 BST 2008


Hi John,

Once not so while ago we talked in IRC and I said that it's to sad that commit don't use
working tree's iter_changes() method to collect changes for commit. As I remember you
said that it's not true and in reality commit uses it.

I can show use case where commit behaves differently than status in the same tree:

C:\Temp\stvsci>bzr init
Standalone tree (format: pack-0.92)
Location:
   branch root: .

C:\Temp\stvsci>bzr mkdir foo
added foo

C:\Temp\stvsci>bzr st
added:
   foo/

C:\Temp\stvsci>rmdir foo

C:\Temp\stvsci>bzr st

C:\Temp\stvsci>mkdir FOO

C:\Temp\stvsci>bzr st
unknown:
   FOO/

C:\Temp\stvsci>bzr ci -m1
Committing to: C:/Temp/stvsci/
added foo
Committed revision 1.

C:\Temp\stvsci>bzr st
removed:
   foo/
unknown:
   FOO/

So, commit actually collect changes not via iter_changes, or uses iter_changes data incorrectly.
I think there is already bug report filed about case-insensitive filesystems and maybe even not one,
but IMHO problem not in case-insensitive filesystem. Bug in commit's collector code.




More information about the bazaar mailing list