File: FAQ

package info (click to toggle)
prcs 1.2.11-7
  • links: PTS
  • area: main
  • in suites: slink
  • size: 2,748 kB
  • ctags: 3,097
  • sloc: cpp: 16,675; ansic: 5,725; sh: 4,887; lisp: 1,449; lex: 344; perl: 131; makefile: 131; pascal: 85
file content (140 lines) | stat: -rw-r--r-- 5,227 bytes parent folder | download
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
-*- Text -*-

Here are some frequently asked questions:

======================================================================

PRCS prints something like the following, it can happen anytime, not
just at initial checkout (which is often when people discover this).

$ prcs command P
prcs: Cannot determine project name, there must be a single project
      file in the directory `P'.
$

The problem is described in the "Naming Projects" section of the
documentation.  Basically, you can name a project by giving the
directory in which it resides.  You can also name a project by its
name, or by the name of its project file.  If you leave off the
project name argument, "." is defaulted.  There are then three ways to
determine the name, given in the order of precedence:

1. If the name is of the form P.prj or D/P.prj, the project is assumed
to be P, optionally in the directory D.

2. If the name is of the form D and D is a directory, it looks for a
unique project file in the directory D.  This handles the default
case.

3. Otherwise, the name is of the form P or D/P, it assumes the name of
the project is P, optionally in the directory D.

So, in the above example, replace P with P.prj, and it will succeed.

======================================================================

At checkin, PRCS prints out something like:

prcs: RCS failed on file /home/user/PRCS/P/13_overview.P,v
rcs error: unknown option: -T
rcs usage: rcs -{ae}logins -Afile -{blu}[rev] ...
rcs aborted

Your version of RCS is too old, you need GNU RCS 5.7, PRCS does not
work with older versions.  You can use the same binary by setting the
RCS_PATH environment variable.  You can check that your version of RCS
is up to date without running checkin, by running 'prcs config', which
reports the values of all environment variables and compiled in
settings.

======================================================================

I try to do something with a binary which I did not compile and it
complains about not being able to find one of the binaries that was
compiled in.  For example:

$  prcs package P P.pkg
prcs: System command `/usr/sww/bin/GNU/tar' does not exist.
prcs: Command failed.

To fix this, set RCS_PATH to a colon-separated list of directories in
which PRCS should look and run the 'prcs config' command to see that
everything is okay.

======================================================================

Is there an Emacs mode for PRCS?

No.  The first question is what you think there should be.  If you're
saying to yourself, "CVS has PCL-CVS for Emacs and PRCS doesn't," you
should probably try using PRCS without an Emacs mode for a while, just
enter your commands in a shell window and edit the project file in a
regular buffer.  Most of the interface between you and PRCS is in the
project file, which you can certainly use an emacs mode for, just
about any mode will do.  When you've used it long enough to have come
up with some suggestions for an Emacs mode, send me (Josh) or the
mailing list your ideas.  (It is not for fear of Elisp programming.)

May 1998 update: There is now part of an Emacs mode.  It features a
major mode for project file editing, and a minor mode for PRCS control
files which sets the mode line, etc.

======================================================================

I just compiled PRCS and the first thing it did was drop a core,
what gives?

I don't know, unless you are running Linux:

=== Common Linux Problem #1:

Often, Linux users who have been trying to stay on the bleeding edge
of C library development have C++ libraries which are out of sync with
the rest of their libraries and even a simple C++ program such as:

#include <iostream.h>

int main() { cout << "Hello world!" << endl; }

is likely to fail in the same manner.  Correct the problem or get a
binary from the ftp site, they are statically linked.

=== Common Linux Problem #2:

This one is less common, and I don't know exactly which configuration
triggers it.  The link command looks something like:

	c++ -o prcs <object files> -lfl

and c++ is linking in with an implicit "-lg++".  Libg++ has C++ static
initializers, and also contains the code from GNU regex (regex.{c,h}).
These static initializers get thrown into the prcs binary, but PRCS
also contains these files (regex.{c,h}).  The libg++ static
initializers end up calling the wrong regex code.  This causes it to
crash before reaching main.  I've only experienced it on Linux.  Not
sure why.  Try replacing the link command with:

	gcc -o prcs <object files> -lfl -lstdc++

It should help.

======================================================================

You experience the following:

$ prcs checkin -l
prcs: Checking in project `P' version 0.2.
.../PRCS/P/8_P.o,v  <--  .../PRCS/P/8_P.o
new revision: 1.2; previous revision: 1.1
Binary files /tmp/da001ND and /tmp/T2a001N7 differ
ci: .../PRCS/P/8_P.o,v: diff failed
ci aborted
prcs: RCS ci failed on batch command.
prcs: Command failed.
$

Your version of RCS was not configured to use GNU diff, and therefore
it cannot handle binary files.  Rebuild RCS with its diff path set to
a GNU version of diff.

======================================================================