Re: Patch for making CommitID configurable

2005-04-26 Thread Mark D. Baushke
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Derek Price [EMAIL PROTECTED] writes:

 Peter Backes wrote:
 On 21 Apr 2005 at 10:02, Derek Price wrote:
 I really want to make this the default behavior, even after an
 upgrade.  Would this do the trick for you?
 
 What do you mean exactly?  new-use_commit_id = true instead of
 false, i.e. have commit IDs written even for old repositories after
 an update?  I'd not recommend this.  It violates the principle of
 least astonishment (like the current solution).  However, at least it
 was better than the current situation.
 
 I'm not sure I believe that.  I think most people would prefer to not
 have to jump through any hoops to see new features enabled, especially
 when dealing with feature releases, and I don't think all that many
 people run RCS inside their CVS repositories anymore.  Any dissenting
 opinions other than Peter's out there?

I am given to understand that WebCVS and ViewCVS can run 'rcs' commands
like rlog as a way to glean information out of the local repository
without running 'cvs' commands on the ,v files.

 Why is RCS whining anyhow?  The spec leaves room for newphrases.  Is it
 requesting an upgrade?

If you pass the -q switch to the RCS 5.7 commands, they will not whine
about unknown phrases. The warning message spews from the
rcs-5.7/src/rcslex.c::warnignore() function which is called from
rcs-5.7/src/rcslex.c::getphrases() when NextString is not one of the
known keywords.

A solution would be to ensure that the '-q' switch is being passed to
any rcs command that might run into a newphrase like 'commitid'

% rlog foo,v
rlog: foo,v: warning: Unknown phrases like `commitid ...;' are present.
...
% rcsdiff -r1.1 -r1.2 foo,v
rcsdiff: foo,v: warning: Unknown phrases like `newphrase ...;' are present.
===
RCS file: foo,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
26a27
 #
%

See also the threads here:

  http://www.cvsnt.org/pipermail/cvsnt/2003-February/005206.html
  http://mailman.lyra.org/pipermail/viewcvs/2003q1/001713.html
  http://www.akhphd.au.dk/~bertho/cvsgraph/viewcvs.cgi/cvsgraph/rcsl.l?rev=1.6

One solution might be to modify lib/vclib/bincvs/__init__.py to
use commands like 'co', 'rlog' with different command-line args than

fp = self.rcs_popen('co', (rev_flag, full_name), 'rb')
fp = self.rcs_popen('rlog', args, 'rt', 0)

or the others that exist.

Another alternative might be to provide a patch to the RCS maintainer
to support any of the newphrase formats that CVS has introduced...

Enjoy!
-- Mark
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFCbezU3x41pRYZE/gRAq2KAKCg9gtNeRyUVhgA1aSRMlpBL/m1QQCfSHPH
o1NmVR1kyrB/uucNfTBFeTA=
=pUMj
-END PGP SIGNATURE-


___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Patch for making CommitID configurable

2005-04-26 Thread Peter Backes
On 26 Apr 2005 at 0:25, Mark D. Baushke wrote:

 Derek Price [EMAIL PROTECTED] writes:
  I'm not sure I believe that.  I think most people would prefer to not
  have to jump through any hoops to see new features enabled, especially
  when dealing with feature releases, and I don't think all that many
  people run RCS inside their CVS repositories anymore.  

But if in doubt, just in these sitations the principle of least 
astonishement gives us the answer!

Just think about what *is* the big advantage of CVS besides working 
on RCS files instead of a strange ever-changing file format?  I don't 
see any.  If you do not need this core feature, there are much better 
alternatives to pick from, like Subversion, and they provide much 
more than just writing a commit ID without ever using it!

Having said this, it is obvious that it should also be a question of 
whether CommitID should be kept as a feature *at all*.  It is much 
better to use the loginfo feature with the already present commitlog 
and then pick the changeset from this one (and that is already 
possible entirely without any change to cvs itself!) instead of 
relying on writing some hard-to-retrieve info into rcs files.  With a 
little bit of thinking, you can even find a way to accept the 
commitlog remotely entirely using existing cvs features!  So please 
think a little bit before using CommitID blindly.

When does a commit ID make sense?  Only in a distributed environment, 
where a revision must be identified uniquely independent of it's 
number.  Is the current CommitID usable for this? No, because a 
collision is not entirely unlikely (commit needs to happen at the 
same time with the same PID and the same random number, but I only 
see this to be safe enough to ensure unique IDs for the same 
machine.)  Some well-known commercial SCM for example includes the 
host name in the ID.  Besides that, CVS is currently not distributed 
at all.  And, if I have a certain CommitID and a file that didn't 
change in this commit, it is impossible to say which revision of the 
file was actually current at the time of the commit.

And isn't the commit time already unique per commit? (If the commit 
takes longer than a second?  Can there be more than one commit per 
second?) I don't know, but you should check this--it might be just 
the feature that you now try to implement a second time.

How about tags?  Don't they also provide just the solution to the 
problems commit ID was added for?

But I don't really know the intentions of the commit ID.  What it 
it's purpose?  Maybe I understand it better then.

 I am given to understand that WebCVS and ViewCVS can run 'rcs' commands
 like rlog as a way to glean information out of the local repository
 without running 'cvs' commands on the ,v files.

I didn't know about these problems, but it just shows the principle 
of least astonishement is not misplaced here.  If I am in a hurry, 
and need to update cvs because of the security bug and suddenly my 
webcvs stops working, this is not how it is supposed to be, is it?

 A solution would be to ensure that the '-q' switch is being passed to
 any rcs command that might run into a newphrase like 'commitid'

That's not a solution; it actually makes things worse!  Assumed there 
is a *real* problem rcs was about to tell me (like a corrpupted ,v 
file for whatever reason), I'd possibly not notice because of the '-
q'.  This is like adding casts in C programs just to shut off the 
compiler.

 Another alternative might be to provide a patch to the RCS maintainer
 to support any of the newphrase formats that CVS has introduced...

Please don't ...  RCS is stable, and the files it writes have been 
the same for years and it operates on *one* file at a time (it can 
actually process several, but only in a way that is more or less 
equivalent to a for loop, and this is certainly not to suggest any 
relationship at all between the files being processed.)  I don't see 
any feature which was not a step backwards that should be added to 
rcs.  So please don't change rcs anymore except for bug fixes!  

CVS is to be built upon the things given by RCS, not the other way 
around.  Subversion is the better solution to all problems that might 
make a CommitID reasonable.

BTW, what was actually the reason for merging all the tools (rcs, 
diff3, etc.) into cvs?  I think I have read there was something with 
branches that could not be done by invoking rcs, can you please tell 
me what this was exactly?

Independent from this, I think my patch is a good idea.  It leaves 
the choice to the user.

-- 
Peter 'Rattacresh' Backes, [EMAIL PROTECTED]



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Patch for making CommitID configurable

2005-04-26 Thread Mark D. Baushke
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Derek Price [EMAIL PROTECTED] writes:

 Mark D. Baushke wrote:
  I am given to understand that WebCVS and ViewCVS can run 'rcs' commands
  like rlog as a way to glean information out of the local repository
  without running 'cvs' commands on the ,v files.
 
 Okay, but the threads you cite seem to indicate that they have dealt
 with the problems by passing -q into RCS or tweaking their parsers.  I
 still don't see any reason not to enable commitds by default on feature.

Okay. I suppose it may be desirable to make note of the possible
problems folks might see if they are using older RCS tools in our CVS
documentation, but this thread may be useful enough for that purpose.

-- Mark
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3 (FreeBSD)

iD8DBQFCbpW73x41pRYZE/gRAv85AKCxmFJru81qiaSDC29xpQV766+AyACZAcpB
6e3Bpt0FAjp/z0nKbnL/+/4=
=p81z
-END PGP SIGNATURE-


___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


RE: Patch for making CommitID configurable

2005-04-26 Thread Jim.Hyslop
Peter Backes wrote:
 Just think about what *is* the big advantage of CVS besides working 
 on RCS files instead of a strange ever-changing file format?
ever-changing? I think you're exaggerating here. When was the last time
the RCS file format changed?

What's the point in having the rcsfile(5) specification have the
newphrases spec, if you aren't going to use it?
(http://www.daemon-systems.org/man/rcsfile.5.html)

 I don't 
 see any.  If you do not need this core feature, there are much better 
 alternatives to pick from, like Subversion, and they provide much 
 more than just writing a commit ID without ever using it!
Incrementally adding a new feature is a lot less of a change, and a lot less
drastic, than switching to an entirely new system.

The way you're talking, it sounds as if you are saying that, once a program
is released, it should never change, and if you want new features you should
write a whole new, different program to add those features. Is that really
what you're proposing?

 Having said this, it is obvious that it should also be a question of 
 whether CommitID should be kept as a feature *at all*.
No, it is not obvious at all. It is only obvious if one is intent on keeping
the status quo.

 It is much 
 better to use the loginfo feature with the already present commitlog 
 and then pick the changeset from this one (and that is already 
 possible entirely without any change to cvs itself!) instead of 
 relying on writing some hard-to-retrieve info into rcs files.
For what definition of better? Better for _you_, perhaps, but not for the
dozens or hundreds of users (like me) who _want_ this feature.

Using commitinfo requires 
- each and every installation to make the same changes to their existing
commitinfo scripts; this requires hundreds of hours of wasted, duplicated
effort. Sure, you could make a generic commitinfo script available - but if
anyone already *has* a commitinfo script, then they won't be able to use the
canned one.

- tracking the commit ID in a separate database. Separating the commit
information (i.e. the ID and the log) is not a good idea.

 When does a commit ID make sense?  Only in a distributed environment, 
 where a revision must be identified uniquely independent of it's 
 number.
Huh? Not! The commit ID allows me to determine which files were committed in
a single operation. It has no bearing on distributed environments. I'm
looking at a file, and the log says Fixed such-and-such a bug. I want to
know what other files were committed at the same time. Currently, I have to
rely on narrowing it down by timestamp, using a difficult-to-remember, not
very obvious technique for entering timestamps. Or, I could just type in the
commitID and there it is.

 How about tags?  Don't they also provide just the solution to the 
 problems commit ID was added for?
Assuming that each and every commit is tagged, perhaps. But that's not
necessarily the case, and it's certainly not a practise I would encourage.

  Another alternative might be to provide a patch to the RCS 
 maintainer
  to support any of the newphrase formats that CVS has introduced...
 
 Please don't ...  RCS is stable, and the files it writes have been 
 the same for years
And your point would be... what, exactly? Does RCS not have any kind of a
test suite to check for problems?

 So please don't change rcs anymore except for bug fixes!  
So, let me get this straight. Just because *you* don't see any value in a
new feature, you want to prevent everyone else from using that feature?
(that was a rhetorical question, by the way - I'm sure that is not what you
intended).

Can you provide some objective reasons for not changing RCS? So far, all
you've given us is an impassioned plea for keeping the status quo, without
really giving any substantial reasons.

 CVS is to be built upon the things given by RCS, not the other way 
 around.
CVS *was* originally built on RCS. Why should it remain that way forever?

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. ( http://www.leitch.com )
Columnist, C/C++ Users Journal ( http://www.cuj.com/experts )


___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: [PATCH] Improve pam header detection

2005-04-26 Thread Moriyoshi Koizumi
On 2005/04/26, at 6:52, Mark D. Baushke wrote:
Hi Moriyoshi,
I have committed your patch to allow --enable-pm to work on MacOS X
to the cvshome.org CVS trunk.
Thank you for the attention.  I'll check out the next release.
Moriyoshi

___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs