Re: [kfogel@collab.net: Re: rename in cvs]

2001-10-13 Thread Kaz Kylheku

In article [EMAIL PROTECTED], Greg A. Woods wrote:
[ On Saturday, October 13, 2001 at 01:23:14 (GMT), Kaz Kylheku wrote: ]
 Subject: Re: [[EMAIL PROTECTED]: Re: rename in cvs]

 The problem is, I wouldn't hold my breath.

You'll certainly turn blue if you try.

CVS cannot easily ever support renaming to any extent that something
like BitKeeper or Perforce does, at least not without breaking backwards
compatabilty of the repository structure.

There's simply no place to put the extra meta data necessary except in
the commit comments themselves, and you can much more easily build
simple little wrapper scripts to do renaming and to drive cvs log,
cvs diff, cvs annotate, and cvs update if that's all you're going
to do.  I've already started the ball rolling, yet again, by posting yet
another version of the first such wrapper needed.

You're working on this too? 

I'm going through the design stages of a full blown CVS front end called
Meta CVS. The idea is that all you store in CVS is a flat database of
files that have completely cryptic, machine-generated names. Along with
that, you store a mapping which assigns path names to these objects.

On checkout, Meta CVS obtains a sandbox, and then processes the mapping
file to create the tree.

When you do updates, Meta CVS calculates the difference between the
old mapping file and the new (after the user resolves any conflicts)
and then rearranges your tree accordingly.

If you want to move something, you do it thorugh Meta CVS. It updates
its working copy of the mapping file and performs the move. You can
then commit to ``make it so''. If the up-to-date check fails on the
mapping file, you update, and resolve the conflict. Meta CVS will
then move local files around as necessary to reflect your resolution,
always keeping a prior version of the mapping file stashed somewhere
to determine what rearrangements must be done.

I'm thinking of also post-filtering the output of certain cvs commands
like rdiff and log. For example, the output of rdiff could be edited to
replace the machine-generated names with the mapped pathnames. Not only
that, but a POSIX shell script could be prepended or appended to the
output, containing mv commands.

The idea is that someone with an old version of a tree could execute the
renaming script, and then apply the rest of the patch to get to the new
version of the tree. Thereby the powers of patch would be effectively
extended to doing renaming and directory reshaping.

Another idea I have is to implement a whole new tagging system. 
The project contains a special tag file. When you create a tag with
Meta CVS, it adds an entry into the tag file and commits. The entry
contains the tag name, and a list of files and their versions.

So instead of rewriting every darn tagged file, the baseline information
is recorded in one place, so tagging is much cheaper.  Moreover, the tag
store is itself versioned, so you know when the tag was created and can
attach a comment to a tag creation or deletion. Meta CVS can checkout
or update to a selected tag by individually pulling out the right
revision of each file; an optional patch can be provided for CVS to 
make this expressible in a single CVS command.
___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



CVS behind a firewall.

2001-10-13 Thread Tarun Garg

I am trying to access a cvs repository on the net ( lets say
CVSROOT=:pserver:[EMAIL PROTECTED]:/home/cvspublic)
from a linux machine.
The cvs client is version 1.10.8 ( bash is 2.04).

We use a proxy server ( SQUID) and a firewall ( ipchains).

now whenever I try to access a repository using pserver, I get a timeout.
The port number 2401 is open at our end.
We opened up all the ports once and tried to connect. I could connect at
that time. The client was using port number 1759 at our end. We opened up
that too.
Still it doesn't work.

I've tried repository access with via SSH. It works.

Does the cvs client randomly pick up ports at the client end ( in case of
pserver)?
Can I specify the port to be used at the client side ?
Or is there something wrong with our firewalling ( or proxy) software?
Is there something wrong with my understanding/expectation ?

any help/pointers would be appreciated.

Thanks.



___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: cvs [login aborted]: connect to 216.254.34.156:2401 failed: Connection timed out

2001-10-13 Thread David Delbecq

You seems to have the same problem as me. The firewall systematically block 
the ports he knows nothing about. Usually they know ftp, web, telnet, ssh, 
https   but cvs is not on the list. Unfortunately, asking your system 
administrator to open the port seems to be the only solution. And i know this 
is very difficult. In my case, nobody seems to be able to tell me who the 
hell is the firewall administrator. So i can't CVS from school 

Hope this will disespair you,

David Delbecq

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: CVS behind a firewall.

2001-10-13 Thread Larry Jones

Tarun Garg writes:
 
 Does the cvs client randomly pick up ports at the client end ( in case of
 pserver)?

Yes.  That's the way essentially *all* TCP/IP clients work -- only the
server uses a well-known port.

 Can I specify the port to be used at the client side ?

No.

 Or is there something wrong with our firewalling ( or proxy) software?

No.

 Is there something wrong with my understanding/expectation ?

Yours or your firewall administrator's.  You need need to configure the
firewall to allow outgoing connections from any (non-reserved) port to
port 2401.  The rule should look almost exactly like the rule for telnet
except for the different well-known port number.

-Larry Jones

The surgeon general should issue a warning about playing with girls. -- Calvin

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: CVS behind a firewall.

2001-10-13 Thread Tarun Garg

Thanks Larry.
You've solved my problem and improved my basic understanding ( and that of
my network administrator too !!).



- Original Message -
From: Larry Jones [EMAIL PROTECTED]
To: Tarun Garg [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Saturday, October 13, 2001 10:36 PM
Subject: Re: CVS behind a firewall.


 Tarun Garg writes:
 
  Does the cvs client randomly pick up ports at the client end ( in case
of
  pserver)?

 Yes.  That's the way essentially *all* TCP/IP clients work -- only the
 server uses a well-known port.

  Can I specify the port to be used at the client side ?

 No.

  Or is there something wrong with our firewalling ( or proxy) software?

 No.

  Is there something wrong with my understanding/expectation ?

 Yours or your firewall administrator's.  You need need to configure the
 firewall to allow outgoing connections from any (non-reserved) port to
 port 2401.  The rule should look almost exactly like the rule for telnet
 except for the different well-known port number.

 -Larry Jones

 The surgeon general should issue a warning about playing with girls. --
Calvin



___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: [kfogel@collab.net: Re: rename in cvs]

2001-10-13 Thread Greg A. Woods

[ On Saturday, October 13, 2001 at 06:16:25 (GMT), Kaz Kylheku wrote: ]
 Subject: Re: [[EMAIL PROTECTED]: Re: rename in cvs]

 In article [EMAIL PROTECTED], Greg A. Woods wrote:
 
  There's simply no place to put the extra meta data necessary except in
  the commit comments themselves, and you can much more easily build
  simple little wrapper scripts to do renaming and to drive cvs log,
  cvs diff, cvs annotate, and cvs update if that's all you're going
  to do.  I've already started the ball rolling, yet again, by posting yet
  another version of the first such wrapper needed.
 
 You're working on this too? 

No, it's just more or less the same script I've posted a half dozen
times in the past every time this issue comes to a head.  Others have
posted similar scripts in the past too.  :-)

 I'm going through the design stages of a full blown CVS front end called
 Meta CVS. The idea is that all you store in CVS is a flat database of
 files that have completely cryptic, machine-generated names. Along with
 that, you store a mapping which assigns path names to these objects.

I alread use a CVS front-end almost exclusively:  PCL-CVS.

I haven't bothered working on any rename support for it though.

 Another idea I have is to implement a whole new tagging system. 
 The project contains a special tag file. When you create a tag with
 Meta CVS, it adds an entry into the tag file and commits. The entry
 contains the tag name, and a list of files and their versions.
 
 So instead of rewriting every darn tagged file, the baseline information
 is recorded in one place, so tagging is much cheaper.

There are a number of very good reasons for paying the price of
modifying every file when tagging.  You do not want to stray to far from
being compatible with plain CVS, or plain RCS for that matter.

-- 
Greg A. Woods

+1 416 218-0098  VE3TCP  [EMAIL PROTECTED] [EMAIL PROTECTED]
Planix, Inc. [EMAIL PROTECTED];   Secrets of the Weird [EMAIL PROTECTED]

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: [kfogel@collab.net: Re: rename in cvs]

2001-10-13 Thread Paul Sander

--- Forwarded mail from [EMAIL PROTECTED]

[ On Friday, October 12, 2001 at 20:34:48 (-0700), Paul Sander wrote: ]
 Subject: Re: [[EMAIL PROTECTED]: Re: rename in cvs]

 They can be stored in newphrases inside the RCS files, without breaking
 compatibility.  It's still the wrong way to do it, but it's an improvement
 over the status quo.

Well, it could be, but that would break human compatability too, and
thus that's about the worst way to put such meta data.

Huh???  RCS and CVS can read the files (correctly, and modify them,
correctly), and humans aren't supposed to touch the repository directly
anyway.  And if humans know enough about the RCS file format, they know
how to identify newphrases.  And the introduced newphrases will be
documented, so humans who happen to read the files will still understand
them.

--- End of forwarded message from [EMAIL PROTECTED]


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



WinCVS: Dates on files

2001-10-13 Thread James Knowles

A WinCVS question; I guess actually a general CVS question:

Is it possible to preserve the date/time on files when doing an update? I
have files that I modified a few months ago, checked them into a new
repository, and did an update in a different directory. The dates/times are
the current date/time. 

This isn't a huge deal; it's more a convenience as I consolidate several
versions of the project into CVS. 

Thnx in advance!

-- 
The only thing that helps me retain my fragile grasp on reality is the
friendship that I share with my collection of singing potatoes.
___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Cygwin CVS: local server: storing existing directory

2001-10-13 Thread David M. Karr

(I sent this to the list on 10/12, but I never saw it.  I have the option set
to get my posts sent to me.)

This should be a no-brainer, but I just can't get my CVS setup going.

I'm on Win2k, with Cygwin 1.3.2, CVS 1.11 (the cvs built into Cygwin).
I have a directory $HOME/java/sgs that I want to store into CVS.
I'm setting my CVSROOT to :local:/cygdrive/c/cvsroot.
I want to check out sgs into $HOME/java/cvswork/sgs.

Ok, so in the sgs directory, I did this:

   cvs import -m Simple Grading System sgs intsoft start

This appeared to work, creating lots of N and cvs import: Importing ...
lines.  It did, however, skip importing one source file, because it was in a
DIRECTORY named tags.  I know why that happened.  I'll get that file added
once I get everything else working.

Anyway, now in /cygdrive/c/cvsroot, there is a sgs directory that contains
all of my RCS files.

So, now I go to $HOME/java/cvswork and try to figure out how to check it
out.  I'll show a little bit of shell history here, indicating what I tried.


% pwd
/home/dmkarr/java/cvswork
% cvs checkout sgs
cvs [checkout aborted]: must specify at least one module or directory
% mkdir sgs
% cvs checkout sgs
cvs [checkout aborted]: must specify at least one module or directory
% cd sgs
% cvs checkout sgs
cvs [checkout aborted]: must specify at least one module or directory


So what am I doing wrong?

-- 
===
David M. Karr  ; Best Consulting
[EMAIL PROTECTED]   ; Java/Unix/XML/C++/X ; BrainBench CJ12P (#12004)


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: CVS behind a firewall.

2001-10-13 Thread William Burrow

What understanding did you gain?  I have the same problem, but do not
restrict ANY outgoing ports.  


In gnu.cvs.help, you wrote:
Thanks Larry.
You've solved my problem and improved my basic understanding ( and that of
my network administrator too !!).



- Original Message -
From: Larry Jones [EMAIL PROTECTED]
To: Tarun Garg [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Saturday, October 13, 2001 10:36 PM
Subject: Re: CVS behind a firewall.


 Tarun Garg writes:
 
  Does the cvs client randomly pick up ports at the client end ( in case
of
  pserver)?

 Yes.  That's the way essentially *all* TCP/IP clients work -- only the
 server uses a well-known port.

  Can I specify the port to be used at the client side ?

 No.

  Or is there something wrong with our firewalling ( or proxy) software?

 No.

  Is there something wrong with my understanding/expectation ?

 Yours or your firewall administrator's.  You need need to configure the
 firewall to allow outgoing connections from any (non-reserved) port to
 port 2401.  The rule should look almost exactly like the rule for telnet
 except for the different well-known port number.

 -Larry Jones

 The surgeon general should issue a warning about playing with girls. --
Calvin





-- 
--
William Burrow  --  New Brunswick, Canada o
Copyright 2001 William Burrow ~  /\
~  ()()

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



Re: [kfogel@collab.net: Re: rename in cvs]

2001-10-13 Thread Greg A. Woods

[ On Saturday, October 13, 2001 at 12:34:03 (-0700), Paul Sander wrote: ]
 Subject: Re: [[EMAIL PROTECTED]: Re: rename in cvs]

 Greg A. Woods wrote:
 
  [ On Friday, October 12, 2001 at 20:34:48 (-0700), Paul Sander wrote: ]
   Subject: Re: [[EMAIL PROTECTED]: Re: rename in cvs]
  
   They can be stored in newphrases inside the RCS files, without breaking
   compatibility.  It's still the wrong way to do it, but it's an improvement
   over the status quo.
  
  Well, it could be, but that would break human compatability too, and
  thus that's about the worst way to put such meta data.
 
 Huh???  RCS and CVS can read the files (correctly, and modify them,
 correctly), and humans aren't supposed to touch the repository directly
 anyway.  And if humans know enough about the RCS file format, they know
 how to identify newphrases.  And the introduced newphrases will be
 documented, so humans who happen to read the files will still understand
 them.

Obviously you haven't thought through the long term consequences of
doing something like that, especially in face of a potentially very wide
diversity of how people might access a CVS repository.

Hiding such information inside the RCS file in a non-standard
extension, i.e. in a way that would make it invisible to standard RCS,
or CVS, is not a good idea for a generic solution.

-- 
Greg A. Woods

+1 416 218-0098  VE3TCP  [EMAIL PROTECTED] [EMAIL PROTECTED]
Planix, Inc. [EMAIL PROTECTED];   Secrets of the Weird [EMAIL PROTECTED]

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



RE: CVS behind a firewall.

2001-10-13 Thread Gianni Mariani


Which incoming ports do you restrict ?

You should probably restrict 0-1023,5990-6009,2401(:)),5432 (and a few
others).
If you restrict them all then no packets can come through unless you set up
a
specific 2401 tcp proxy server.

My strong suggestion is to ask a different mailing list, you'll probably get
a better answer.

If you're desperate, I can give you an ipchains (need a Linux 2.2 kernel
afaik) script that I use and works fine for me.  There are a whole bunch of
ip firewall scripts on freshmeat.  Try one of those.

G

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of
William Burrow
Sent: Saturday, October 13, 2001 3:06 PM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: CVS behind a firewall.


What understanding did you gain?  I have the same problem, but do not
restrict ANY outgoing ports.


In gnu.cvs.help, you wrote:
Thanks Larry.
You've solved my problem and improved my basic understanding ( and that of
my network administrator too !!).



- Original Message -
From: Larry Jones [EMAIL PROTECTED]
To: Tarun Garg [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Saturday, October 13, 2001 10:36 PM
Subject: Re: CVS behind a firewall.


 Tarun Garg writes:
 
  Does the cvs client randomly pick up ports at the client end ( in case
of
  pserver)?

 Yes.  That's the way essentially *all* TCP/IP clients work -- only the
 server uses a well-known port.

  Can I specify the port to be used at the client side ?

 No.

  Or is there something wrong with our firewalling ( or proxy) software?

 No.

  Is there something wrong with my understanding/expectation ?

 Yours or your firewall administrator's.  You need need to configure the
 firewall to allow outgoing connections from any (non-reserved) port to
 port 2401.  The rule should look almost exactly like the rule for telnet
 except for the different well-known port number.

 -Larry Jones

 The surgeon general should issue a warning about playing with girls. --
Calvin





--
--
William Burrow  --  New Brunswick, Canada o
Copyright 2001 William Burrow ~  /\
~  ()()

___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs



implementing basic metadata in cvs using tags

2001-10-13 Thread Matthew Herrmann

Hi people,

I just had a thought while reading people's emails about renames and
preserving unix permissions and so on, and an idea hit me:

why not have registered programs on the client side which mangle permissions
and so on into a sort of UUencoded string, put into a file's tag, which is
then read by the same program and reapplied when the file is checked out?

Here's the sketch of where you could use it and what you could do:

Example:
file has group read, group write, world read, world execute. Then, by some
mechanism, you specify that a given file is enabled for this form of tag
mangling. upon performing a commit, the client program GETPER say would read
the permissions, then encode them as XMKJ1J. That one file gets given the
tag META_GETPER_XMKJ1J. When the file is checked out, the checking out
procedure knows by the magic META_ that it needs to invoke the external
program on that file. It runs GETPER and passes it as a parameter the
filename and XMKJ1J. That program knows what to do with it and does so.

Example:
OCX and COM DLLs used in application may change as the application goes. As
an input to the project, they should be included so that you don't trash
your machines, re checkout your source and then not be able to compile
because they're missing. With this method, you could give them a sticky
tag called COM_REGISTER, which then evokes an external program on
checkouts/updates and releases, appropriately registering and unregistering
the COM file. Maybe even database files could be attached/detached using a
similar mechanism? (not sure if this would be useful, but it feels like
there would be other similar uses).

Example:
Well, potentially (this would be a wrap over the top of cvs) -- you could
automatically record in a similar format the changes of filenames and then
have it intercept log commands to detect when filenames change.

Ie. it would store a tag at the point of the creation of the new file which
links back to the old file. cvs log is intercepted and generated for both
files. they are then somehow concatenated.

i recognise this is a much bigger problem but this feature could be a useful
stepping stone to getting that working.

Forces as I see it are:
- need sticky tags to exist in a non-branch context. I don't know if this
can be done? If so, then it's simple, I just add an appropriate IS-A tag to
a file, and then the appropriate programs are evoked at different points. If
this is unavailable, then the only practical way to say this file's unix
permissions need to be tracked is to either have some sort of per-module
list of files to operate on, or to say for example all html files need to
have permissions tracked. We then say that permissions tracked means call
GETPER before commits to generate magic tags.

- check points where code could run before commits and so on. if this is
done as a patch, then this would be the way to go. if not, then this is not
necessary since the more messy 'wrap cvs' technique applies.

- need to be able to check the tags on checked out files in CVS. i think
this is available via cvs log but please let me know if i'm wrong

- need tags to be basically constant-time efficiency. a lot of this metadata
will get generated, so if it clags cvs then this approach won't work.


Could people please:
1. Suggest if there's a better way to solve the COM registration problem? I
remember something about the commitinfo and modules files specifying
applications to run... ? My offline copy of the cvs manual is broken so i
can't look it up.

2. Can I do this just by using built-in functionality or would I need to
patch or wrap?

3. Is this useful? It seems to me to solve the whole metadata problem -- you
can store file permissions for different platforms and other random
information that may be required.

People's comments would be greatly appreciated.

Regards,

Matthew Herrmann
---
Far Edge Technology

tel: +612 9955 3640

11/80 Mount St
North Sydney NSW 2060
Australia


___
Info-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/info-cvs