1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
|
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}
|