I just ran into a case insensitive file name problem. I'm on Windows, and I added a file named "GDS_Executor.page" in a main branch, renamed it to "gds_executor.page" in another branch, then merged the branches.
mtn did not complain during the merge, but it did complain during the update; mtn: misuse: rename target 'gds_executor.page' already exists But then if I delete 'gds_executor.page' from the workspace (but not from mtn), update fails with: mtn: warning: missing file 'GDS_Executor.page' There are a couple of issues here. First, mtn should use a case-insensitive file name compare. More precisely, it should use whatever file name compare the actual file system uses; that may be a case-sensitive NFS on Windows, for example. That would require a standard API for checking file name equality; is there such a thing? Trying to actually create two files and seeing if an error results would work, but probably be too slow. As an approximation, we could lowercase all file names on Windows before doing string equal. That's probably not right if the filenames are actually UTF8 encoded. Is there an appropriate 'lowercase' function? Second, why does 'update' care if some files are missing? They will be restored or not as appropriate by the update anyway. In the current use case, this check just gets in the way. I'll start another thread for that. -- -- Stephe _______________________________________________ Monotone-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/monotone-devel
