Following Ayende's post on Patch management approaches using centralized SCM, here are how I would have dealt with the 4 issues that he brings up, using a Decentralised SCM.
I use git, so I'll use git terms here. I guess it's quite similar for other DSCM systems.
Note that I haven't used patches on git development as until now all of my git work was on repositories I had write access to, However the principals are the same (i.e. - all of the tree is local to my machine, thus I can reach any point in the history locally).
First I'll clone the hosted repository to my local machine.
So, using a DSCM, I can work locally with the benefits of a SCM, have as many branches/features as I want. the whole tree is stored locally, and its blazing fast to switch branches, so I can easily work on every aspect I want, and easily create a patch from every node in the history tree, to send to the project owners.
After failing to setup git access to my newly created repository on git-hub, I managed to nail the problem, thanks to Lee Henson's good advice (and by re-reading the hint text)
After generating the public key (with puttygen) I copied to git-hub only the key itself (the HEX part), while I was also supposed to copy the text surrounding it, as can be seen in the image below:
Copy + Paste => now it works
Now that I'm getting old, I need to keep up with the cool kids, so I'm taking git for a spin.
Downloaded MSys Git.
Upon install I went for the git-bash option. Running the bash shell has reminded my some of the old unix memories, however I am much more comfy with the windows shell these days, so I have manually added the the path things needed for running in cmd.exe/f
Now it was time to test remote. Luckily enough I got a git-hub invitation.
Step 1 - signup to git-hub.
downloaded the newest putty, then used puttygen to generate public and private key.
Step 2 - create a private repository - went smoothly.
Step 3 - trying to push to the remote repo.
I ran the PAGEANT.EXE tool, loaded it with the private key, and set the GIT_SSH environment variable to point to PLINK.EXE.
Then tried to "git push origin master" and got a message like "The server's key signature is not in the registry, press 'y' for storing in the registry, 'n' for skipping, 'return' to exit". the problem is - it got stuck, no input allowed except ctrl-C.
Then I tried to putty directly to the server, and now it did let me press the y, hoora - server's public key's signature is stored.
You'd think could push to the repository? think again. I then started getting other weird errors like "No supported authentication methods available".
grrrrr.
Maybe Ill try again tomorrow.
UPDATE (07/04/2008 - I guess tomorrow is a flexible term these days ...):
It was me being silly. Now it works perfectly