November 2009

Currently the codeplex repository has the namespace folders arranged in a hierarchical fashion, i.e. Net/*.cs, Net/Bluetooth/*.cs, Net/Bluetooth/Sdp2/*.cs etc.  This is rather unwieldy to work with, for instance if one wants to see files in Net/Bluetooth/Sdp2/ one has to have both it and the two parent folder open which takes up lots of space with the files from all three.  I intend to change this to be a simple list of folders at the top level: Net/, Net/Bluetooth/, Net/Bluetooth/Sdp2, … , Net/Socket/ etc.

This might affect people who use a source control client to keep in sync with the code (e.g. the VS Team System client (is this the correct name?), or an SVN client for instance).  People who do a complete download using the ZIP file download shouldn’t be affected.  Hopefully the source-code-control clients recognise a “folder rename” operation and just move the files in the folder locally instead of having to re-download them.  Also things might behave worse if there’s a local edit to a file the moves folder.  So I’ll hold off from making any major changes until Friday at the earliest.

I’ve made two changes already to test how things behave.  I moved Net/IrDA/ and Net/Mime/.  In the latter test I made a local edit in one (team-system) repository and carried out the folder renaming in another repo.  Then on updating the first repository the following sequence of operations occurred:

  1. A dialog box reporting ‘ could not delete non-empty folder “Mime”‘ or words to that effect.  I just clicked the OK button.
  2. The conflicts dialog was then displayed and I clicked “Resolve all automatically”.  I was then prompted about the ‘moved and edited’ file to which I asked it to merge the local changes.  It then asked whether to keep the local name or the server name, I chose the latter.
  3. After all that everything looked ok.  The file was in the correct folder and with my local change present.  (The old Net/Mime/ folder was still present as implied by #1, but it was of course empty and I deleted it manually for tidyness.

It wasn’t clear in these cases whether the moved files were re-downloaded or just shifted locally.

Let me know if this will cause any great difficulties.


As discussed previously BluetoothWin32Authentication didn’t work on Windows 7.  I have fixed it — changing it to use the new API on Windows 7 and the old API on older Win32 platforms.  See my document Bluetooth in Windows 7 for more details.