-
Notifications
You must be signed in to change notification settings - Fork 0
/
FAQ.txt
199 lines (153 loc) · 8.66 KB
/
FAQ.txt
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
Q1. I get an error that says "error in startup script-invalid command name
"get_cde_params" while executing "get_cde_params"
(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. How do you get the colors shown in your screenshots?
Q11. Why is the Branch Browser so slow in Subversion?
Q12. How to run tkrev on Mac OSX?
-----------------------------------------------------------------
Q1. I get an error that says "error in startup script-invalid command name
"get_cde_params" while executing "get_cde_params"
(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 [email protected]:/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 [email protected]:/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. How do you get the colors shown in your screenshots?
A. I put this in my ~/.tkrev file:
option add *Canvas.background #c3c3c3
option add *selectColor #ffec8b
option add *Menu.background gray
option add *Text.background gray92
option add *Entry.background gray92
-----------------------------------------------------------------
Q11. 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.
-----------------------------------------------------------------
Q12. 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.