NFCFS

NFCFS and Bazaar

At the moment of this writing Bazaar does not seem to correctly handle international characters in file names. This might change in the future, the version of Bazaar used in the examples below is 2.0.1, if you have a later version, try the example below for yourself to see if it works.

Bazaar without NFCFS

Here's an example of trying to add a file with an international character in the file name to a Bazaar repository:

First, create a repository somewhere:

mkdir /tmp/bazaar
cd /tmp/bazaar
bzr init

Bazaar should respond with:

Created a standalone tree (format: 2a)

Now, create a file with an international character in the file name, and add it to the Bazaar repo:

touch ö.txt
bzr add

Bazaar responds with:

adding "ö.txt"

So far so good, but when asking Bazaar for status using

bzr status

Bazaar will respond with

unknown:
  ö.txt

This is not correct, Bazaar does not seem to have added the file to the repository, and when asked for status does not recognize the file.

If I try to commit using

bzr commit -m "whatever"

Bazaar will respond with

Committing to: /private/tmp/bazaar/                                               
missing ö.txt
aborting commit write group: PointlessCommit(No changes to commit)
bzr: ERROR: No changes to commit. Use --unchanged to commit anyhow.

failing to commit my new file. It seems like Bazaar does not realize the the file in the file system is the file I wanted to add.

Bazaar with NFCFS

Doing the same thing in a directory mounted using NFCFS works better:

First, create the repository and add the file as above:

mkdir /Volumes/nfcfs/bazaar
cd /Volumes/nfcfs/bazaar
bzr init
touch ö.txt
bzr add

When asking for status using

bzr status

Bazaar will now respond with

added:
  ö.txt

Which seems correct. The file can be committed using

bzr commit -m "whatever"

will result in

Committing to: /Volumes/nfcfs/bazaar/                                             
added ö.txt
Committed revision 1.

putting the file under version control as expected.

Version tested

The above example uses version 2.0.1 of Bazaar. More specifically, typing bzr --version prodcues the following output (line breaks inserted by me):

Bazaar (bzr) 2.0.1
  Python interpreter: /opt/local/Library/Frameworks/Python.framework/
    Versions/2.6/Resources/Python.app/Contents/MacOS/Python 2.6.4
  Python standard library: /opt/local/Library/Frameworks/Python.framework/
    Versions/2.6/lib/python2.6
  Platform: Darwin-10.2.0-i386-64bit
  bzrlib: /opt/local/Library/Frameworks/Python.framework/Versions/2.6/
    lib/python2.6/site-packages/bzrlib
  Bazaar configuration: /Users/thomas/.bazaar
  Bazaar log file: /Users/thomas/.bzr.log

Copyright 2005, 2006, 2007, 2008, 2009 Canonical Ltd.
http://bazaar-vcs.org/

bzr comes with ABSOLUTELY NO WARRANTY.  bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.