Q1. I get an error that says "error in startup script-invalid command name
    "picklist_load" while executing "picklist_load" 
     (file"usr/local/bin/tkrev"line 1)
Q2. The "Hide" and "Show" fields don't seem to do anything.
Q3. How do I log in to a remote server?
Q4. Can I use a diff tool other than tkdiff with tkrev?
Q5. How do I import a new module?
Q6. I can't get the Module Browser to work with my CVSROOT/modules file!
Q7. I haven't put the tkrev extensions in my CVSROOT/modules file yet.  Can
    I still use tkrev to check out a project?
Q8. What good are modules anyway?
Q9. I'm seeing strange behavior - things just don't act right.
Q10. Why is the Branch Browser so slow in Subversion?
Q11. How to run tkrev on Mac OSX?
Q12. Which Xdefaults affect tkrev?

-----------------------------------------------------------------
Q1. I get an error that says "error in startup script-invalid command name
    "picklist_load" while executing "picklist_load" 
     (file"usr/local/bin/tkrev"line 1)

A. Did you run doinstall.tcl?

   If yes, make sure you don't have a TCLROOT environment variable
   that's pointing to somewhere other than where it put tkrev' .tcl
   files.

   If that's not the trouble, do "command -v tkrev" to find which tkrev
   you're executing.  Look at that file and see what TclRoot is set to.
   Are the .tcl files in $TclRoot/tkrev?  Is there a tclIndex there? 

-----------------------------------------------------------------
Q2. The "Hide" and "Show" fields don't seem to do anything.

A. "Hide" works exactly the way a .cvsignore file works.  That is, it
   causes non-CVS files with the pattern to be ignored.  It's meant
   for hiding .o files and such.  Any file under CVS control will be
   listed anyway.

   "Show" is the inverse - it hides non-CVS files except for those with
   the pattern.

-----------------------------------------------------------------
Q3. How do I log in to a remote server?

A. There's no way to transmit a password through tkrev, but luckily you
   don't have to.  If it's a pserver, do "cvs login" once from the command
   line, then start tkrev.  CVS client saves your password (encrypted) in
   your .cvspass file.

   For remote access via ssh, you normally upload your public key to the
   remote machine so it won't ask for a password.  (If you have a shell
   account, it goes in ~/.ssh/authorized_keys.)  Then you set your
   environment like this:
   % setenv CVSROOT username@cvs.tkrev.sourceforge.net:/cvsroot/project
   % setenv CVS_RSH ssh

   If you can't use authorized keys for some reason, you can use ssh-agent:
   % ssh-agent $SHELL
   % setenv CVSROOT username@cvs.tkrev.sourceforge.net:/cvsroot/project
   % setenv CVS_RSH ssh
   % ssh-add (type passphrase)
   % tkrev

-----------------------------------------------------------------
Q4. Can I use a diff tool other than tkdiff with tkrev?

A. Yes, by changing cvscfg(tkdiff).  You usually have to write a wrapper for
   your diff tool to get it to check out the versions, and and deal with its
   particular command-line options, which are probably different from tkdiff's.

   In the contrib directory, there is a gvim-wrapper called "cvsdiff" which can
   be used as-is or as a model for wrapping your favorite diff tool.

-----------------------------------------------------------------
Q5. How do I import a new module?

   Get your new directory the way you want it.
   Cd into the directory.
   Press the big "Module Browser" button in the top part of the tkrev UI.

   In the Module Browser, press the rightmost button on the bottom, the
   one that shows a folder and an up arrow.

   In the dialog that pops up, fill in a descriptive title for the module.
   This will be what you see in the right side of the Module Browser.

   OK the dialog.  Several things happen now.  The directory is
   imported, the CVSROOT/module file is updated, your original directory is
   saved as directory.orig, and the newly created module is checked out.

   When the dust clears, you should find the original Working Directory
   Browser showing the files in the newly created, checked out module.

   The most common cause of failure here is not having the proper
   permissions to write to the repository.

-----------------------------------------------------------------
Q6. I can't get the Module Browser to work with my CVSROOT/modules file!

A. Make sure the fields in your file are separated by TABS!  Does your editor
   automatically de-tab when you save a file?  (Hint: if your editor has syntax
   highlighting, use the Makefile mode.)

   Not quite every possible module arrangement that can be specified in the
   modules file can be reflected in the Module Browser.  That's a little
   better in version 7.x than it was previously, but the tradeoff was that
   there's less freedom to create fictional directory trees.

-----------------------------------------------------------------
Q7. I haven't put the tkrev extensions in my CVSROOT/modules file yet.  Can
    I still use tkrev to check out a project?

A. Yes.  Start tkrev.  Open the Module Browser.  It will be empty because
   there's no modules file, but type the name of the project in the "Module"
   entry.  Press the Checkout button (the ball with the arrow). 

-----------------------------------------------------------------
Q8. What good are modules anyway?

A. It's hard to see the utility of modules unless you have projects that
   have nested directories.  Defining a directory as a module makes it
   behave as though it were at the top level of your repository.  For example,
   the repository may contain documentation in a structure like this:

   manuals
     |
     | - programA - reference manual
     |     |
     |     |------appnotes
     |
     | - programB - reference manual
           |
           |------appnotes
   
   If I didn't use modules and I wanted to check out only the programA
   documents, I'd have to say "cvs co manuals/programA".  But since I have a
   line in the CVSROOT/modules file that says

   programA    manuals/programA

   I can say "cvs co programA".  That may not help much in this simple example,
   but as the project tree gets deeper, it becomes handy.  You can also make a
   module out of different directories that are not so obviously grouped, or
   make a module that includes some files in a directory and not others.

-----------------------------------------------------------------
Q9. I'm seeing strange behavior - things just don't act right.

A. Do you have a .cvsrc file or other .cvs* files lurking about?  If you
   change cvs's behaviour in certain ways, it can trick tkrev.  Be especially
   careful of modifying "cvs log".

-----------------------------------------------------------------
Q10. Why is the Branch Browser so slow in Subversion?

A. Actually it's a lot faster as of tkrev version 9.0.

   It's because SVN doesn't have tags or branches, it only has copies.  The
   brute-force method I came up with to reconstruct a diagram requires a lot of
   repository accesses for branches and tags.  Open the trace window and take a
   look at what tkrev is doing to build that diagram. It will give you something
   to watch while it's chugging, at least.

   If you convert a CVS repository to SVN, my recommendation would be to
   discard non-branch tags. If there are very many, most likely all but the
   most recent ones have value only as archaeological curiosities anyway. 
 
   There's a cvscfg setting that determines how many tags are too many to
   process. I figured that would be different depending on how remote the
   repository is. There's also an option on the branch browser not to process
   non-branch tags at all. If you can't get rid of them, that's probably what
   you'll need to do.

-----------------------------------------------------------------
Q11. How to run tkrev on Mac OSX?

A.
   My favorite way of running tkrev on the Mac is simply to install the
   platform-independent tkrev in /usr/local/bin or someplace like that, and invoke it
   from the command line.  With the full Mac version of Wish installed, there
   will be a /usr/bin/wish that invokes the Wish.app.  (Install Wish and do
   "command -v wish" to see how that works.)

   If you want to have a double-clickable app bundle, you can use something like
   Platypus (https://sveinbjorn.org/platypus) to create a wrapper.

   Or, you can run it in X11 on the Mac if you've installed XQuartz.

-----------------------------------------------------------------
Q12. Which Xdefaults affect tkrev?

A.
  To set your own colors, you can use these entries in your Xdefaults

  tkrev*background: gray80
  tkrev*foreground: black
  tkrev*Menu.background: gray65
  tkrev*Menu.foreground: white
  tkrev*Button.background: gray75
  tkrev*Button.foreground: black
  tkrev*Canvas.background: gray90
  tkrev*Canvas.foreground: black
  tkrev*Text.background: gray90
  tkrev*Text.foreground: black
  tkrev*Text.selectBackground: slateblue
  tkrev*Text.selectForeground: white
  tkrev*Menu.font: {Serif 12}
  tkrev*Button.font: {Serif 11}
  tkrev*Label.font: {Cantarell 10}
  tkrev*List.font: {Cantarell 10}
  tkrev*Text.font: {DejaVu Sans Mono 10}

