Oct 24, 2007 at 5:30 AM
The cpc source control is probably the most confusing thing I've ever seen.

For instance, for using a diff tool it simple says to add cpc.exe.config to the same folder as cpc then for Tortoise it gives a template. A template which requires paramaters, the first of which is called 'basepath' :Full path to base filename . What is my base filename? I don't have any 'base' files, I simply have a project, with many source and resource files in it. Then the next parameter is '{mypath}': Full path to my changes. My changes are obviously going to lie in the project code itself. How do I give a path to a specific line in code? My changes are in many different files, and in different folders, how would I specify a path to that? Why should I be required to specify where my changes are when the status /gui obviously knows which file I am trying to diff against? Then there is {theirpath} Full path to their changes (merge only). Same issue as the last one, how do I specify a path to specific code changes in multiply files across multiple folders?

The documentation proceeds to list these names: CpcDiffTool, CpcDiffArgs, CpcMergeTool, CpcMergeArgs. None of these phrases are listed anywhere in the documents, unless you remove Cpc from their names.

And then finally, when I run the status /gui and try to diff, it says I do not have one specified. I have the cpc.exe.config in the ONLY folder that cpc is in, and I did add cpc to the PATH, otherwise it wouldn't run at all, and I did configure my config file, and I do have tortoise installed and gave my config file the exact path to it.

Rather than the gui giving me a link on how to install it, which leads to documentation, which leads to frustration, which leads me here, maybe the gui should instead give me a prompt asking the path of my diff tool, and I could navigate to tortoise which would then set the path in cpc from then on....

Sorry if I am frustrated. Did I mention my last commit gave me a database error 500021? An error which had no description, and which isn't listed anywhere on google or the section of codeplex that created the codeplex control client (this site).
Oct 30, 2007 at 7:34 PM
There are two ways to set configuration values: inside of the .config file (as you're doing) or inside your system environment as environment variables. If you look at each configuration section, it points out the names of the values for the depending on whether you're using a config file or environment variables. The names with Cpc and Tfc in front of them are for environment variables (since you only have one environment, we wanted you to be able to configure cpc.exe and tfc.exe differently if the need arose).

In the section about diff/merge tools, the only value you need to replace is the path to Tortoise. The values like {theirpath} are tokens which are replaced by cpc at runtime with the correct values. You should leave these things untouched.

If you've installed TortoiseSVN in the default location, then these exactly values should be in your .config file:

<add key='DiffTool'
 value='C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe'/>
<add key='DiffArgs'
 value='/base:{basepath} /mine:{mypath} /basename:{basename} /minename:{myname}'/>
<add key='MergeTool'
 value='C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe'/>
<add key='MergeArgs'
 value='/base:{basepath} /mine:{mypath} /theirs:{theirpath} /basename:{basename}
    /minename:{myname} /theirsname:{theirname} /merged:{mergepath} /mergedname:{mergename}'/>
Hope this helps...