Re: GNULib save-cwd.c on Windows Visual Studio 6.0

2005-03-09 Thread Jim Meyering
Here's a patch that should restore the ability of save-cwd to
work on systems without the fchdir function.

Would you please see if this is sufficient?
If so, I'll check it in to gnulib (with an AC_CHECK_FUNCS(fchdir)
in save-cwd.m4).

Index: save-cwd.c
===
RCS file: /fetish/cu/lib/save-cwd.c,v
retrieving revision 1.24
diff -u -p -r1.24 save-cwd.c
--- save-cwd.c  20 Jan 2005 22:17:26 -  1.24
+++ save-cwd.c  9 Mar 2005 07:49:19 -
@@ -44,6 +44,18 @@
 #include chdir-long.h
 #include xgetcwd.h
 
+/* On systems without the fchdir function (WOE), pretend that open
+   always returns -1 so that save_cwd resorts to using xgetcwd.
+   Since chdir_long requires fchdir, use chdir instead.  */
+#if !HAVE_FCHDIR
+# undef open
+# define open(File, Flags) -1
+# undef fchdir
+# define fchdir(Fd) abort ()
+# undef chdir_long
+# define chdir_long(Dir) chdir (Dir)
+#endif
+
 /* Record the location of the current working directory in CWD so that
the program may change to other directories and later use restore_cwd
to return to the recorded location.  This function may allocate


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


Defect with Diff3 utility

2005-03-09 Thread Rahul Nerlikar
Hi,
(B
(B 
(B
(BCould anyone shed some light on this peculiarity of the diff3 utility?
(B
(B 
(B
(BHere$B!G(Js the example OLDFile is as below,
(B
(B 
(B
(B#ENGLISH Resource File
(B
(B 
(B
(B#DoNotTranslate
(B
(BL6_WINDOWS = OK|O
(B
(B# fail to enable path.
(B
(Bset_pathEnabled_failed = Failed to enable the path.
(B
(B# fail to set preferred path.
(B
(Bset_preferredPath_failed = Failed to set preferred path.
(B
(Bset_primaryPath_failed = Failed to set primary path.
(B
(B# fail to purge disk
(B
(Bset_purgeDisk_failed = Failed to purge disks.
(B
(B# set Array status failed.
(B
(Bset_arrayStatus_failed = Failed to set array status.
(B
(B 
(B
(B# please wait message
(B
(Bmsg_wait_for_system_update = The system is currently too busy to update the 
(Bdevice status.  Please try the operation later.
(B
(B 
(B
(B# hard_disk_name
(B
(Bhard_disk_name=Harddisk
(B
(B 
(B
(B#Top Menu Item that displays short cut. In Japanese, Korea... , add (P) at the 
(Bend.
(B
(Btop_path_menu = Path|P
(B
(B 
(B
(B 
(B
(BNew file is as below,
(B
(B 
(B
(B#ENGLISH Resource File
(B
(B 
(B
(B#DoNotTranslate
(B
(BL6_WINDOWS = OK|O
(B
(B#EndDoNotTranslate
(B
(B 
(B
(B# labels for the DMP client extension
(B
(BNONE_ID = None
(B
(BACTIVE_ACTIVE_ID = Active/Active|A
(B
(BACTIVE_PASSIVE_ID = Active/Passive|P
(B
(BNAME_ID = Array Name:
(B
(BOK_ID = OK|O
(B
(B# fail to enable path.
(B
(Bset_pathEnabled_failed = Failed to enable the path.
(B
(B# fail to set preferred path.
(B
(Bset_preferredPath_failed = Failed to set preferred path.
(B
(Bset_primaryPath_failed = Failed to set primary path.
(B
(B# fail to purge disk
(B
(Bset_purgeDisk_failed = Failed to purge disks.
(B
(B# set Array status failed.
(B
(Bset_arrayStatus_failed = Failed to set array status.
(B
(B 
(B
(B# please wait message
(B
(Bmsg_wait_for_system_update = The system is currently too busy to update the 
(Bdevice status.  Please try the operation later.
(B
(B 
(B
(B# hard_disk_name
(B
(Bhard_disk_name=Harddisk
(B
(B 
(B
(B#Top Menu Item that displays short cut. In Japanese, Korea... , add (P) at the 
(Bend.
(B
(Btop_path_menu = Path|P
(B
(B 
(B
(BARRAY_GROUP_NODES = Arrays
(B
(BNote there is only a single CR at the end of this file and this 
(Bstatement is not part of the file.
(B
(B 
(B
(BYOURFILE is 
(B
(B 
(B
(B#JAPANESE Resource File
(B
(B 
(B
(B#DoNotTranslate
(B
(BL6_WINDOWS = OK|O
(B
(B#EndDoNotTranslate
(B
(B 
(B
(B# labels for the DMP client extension
(B
(BNONE_ID = $B$J$7(J
(B
(BACTIVE_ACTIVE_ID = $B%"%/%F%#%V!_%"%/%F%#%V(J|A
(B
(BACTIVE_PASSIVE_ID = $B%"%/%F%#%V!_%Q%C%7%V(J|P
(B
(BNAME_ID = $B%"%l%$L>(J: 
(B
(BOK_ID = $BN;2r(J|O
(B
(B# fail to enable path.
(B
(Bset_pathEnabled_failed = $B%Q%9$NM-8z2=$K<:GT$7$^$7$?!#(J
(B
(B# fail to set preferred path.
(B
(Bset_preferredPath_failed = [EMAIL PROTECTED]@_Dj$K:GT$7$^$7$?!#(J
(B
(Bset_primaryPath_failed = $B%W%i%$%^%j(J [EMAIL PROTECTED];$s$G$7$?!#(J
(B
(B# fail to purge disk
(B
(Bset_purgeDisk_failed = $B%G%#%9%/$N>C5n$K<:GT$7$^$7$?!#(J
(B
(B# set Array status failed.
(B
(Bset_arrayStatus_failed = $B%"[EMAIL PROTECTED]<:GT$7$^$7$?!#(J
(B
(B 
(B
(B# please wait message
(B
(Bmsg_wait_for_system_update = 
$B%7%9%F%`$,%S%8!<$J$?$a!"%G%P%$%9>uBV$r99?7$G$-$^$;$s$G$7$?!#$"$H$G$b$&0lEY

intermittenly happens when using commit

2005-03-09 Thread Romeo Gourgue
Some times when I do a CVS commit, text like the following is appended
to the bottom of the file that I have committed:

**
date: Friday, February 18, 19105 @ 14:44
author: username
Update of /data/implementation/cvs/operational/bin
In directory system:/data/system1/username/bin

Modified Files:
emacs-init.el ops-env
Log Message:



This does not happen every time.  When it does happen, I edit it out 
and recommit; but it is annoying.  This started happening right after
the aussie-wizard replacement on S systems.  As part if that project,
Otto installed a new version (1.12.9) of CVS.  Since then, I have used
both the new and the old (1.11) versions of CVS; and have seen this
problem with similar frequency in both versions.
-- 
Romeo Gourgue Jr
Network/UNIX Administrator
Space Telescope of Science Institute
410-338-2615



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


Re: [bug-gnulib] GNULIB wait-process module.

2005-03-09 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Bruno Haible wrote:
| Thanks for explaining. Your objective is clear now.
|
| But how would you want this to work on Woe32? I assume that you
| would want this debugging feature also on Windows. How do you
| implement it there?
Actually, the CVS server isn't completely portable to WOE32, so this
code never runs there anyhow.  Even if we do reach a point where the
server runs on WOE32 again, the fact that WCOREDUMP always evaluates
to false on WOE32 and does us no good makes me want the data dir to be
left behind on UNIX no less.  If the server does get ported
completely, then perhaps the porter will have some ideas about how to
get the same effect there.
| The change I'm proposing is simple.  I've attached a patch.
|
|
| I'm opposed to this change because I don't see how it can be made
| to work on Windows. In other words, it makes unportable
| assumptions.
My patch is based on no new assumptions.  wait_subprocess() was
already calling WIFSIGNALED  WTERMSIG on the results of a wait.
There is code at the top of the file defining these macros to values
under WOE32 that I assume do something sensible there.  All my patch
does is, when WIFSIGNALED returned true, then set the input var to the
terminating signal via WTERMSIG, which is already being called in the
same circumstances.  The caller can then process this value.
Regards,
Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCLvx8LD1OTBfyMaQRAku/AJ9RiEZBfAh7G5sHW+g/nuN3VfNl0wCgrox2
6epQNVF1oC1zRT7Sj8RaygU=
=jQYF
-END PGP SIGNATURE-

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


RE: GNULib save-cwd.c on Windows Visual Studio 6.0

2005-03-09 Thread Conrad T. Pino
 
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Jim,

 From: Jim Meyering [mailto:[EMAIL PROTECTED]
 
 This is not about Microsoft per se, but simply about
 the lack of fchdir (or POSIX support in general) in WOE.

I agree let's not enumerate Microsoft's flaws as we would never
finish. :)

 I suppose it's a long shot, but...
 is there a way, in WOE/MSVC, to emulate fchdir's behavior?

I think not.  My research on http://msdn.microsoft.com site came
up with no hint of a method to translate an open file / directory
handle into a path name.

 I.e., given a file descriptor that is the result of opening a
 directory, can you obtain an absolute path name of that directory?

Worse, if C:\work is a directory attempts to use the Visual C 6.0
open function with _O_RDONLY argument to open . or C:\work
will both return -1 value i.e. error.  Sample program follows.

Conrad

#include stdio.h
#include io.h
#include fcntl.h

static int opendir( char *name )
{
int fd;

fd = open( name,  _O_RDONLY );
printf( open %s = %d\n, name, fd );

close( fd );

return fd;
}

int main(int argc, char* argv[])
{
int fd;

printf(Hello World!\n);

fd = opendir( test.txt );
fd = opendir( . );
fd = opendir( C:\\work );

return 0;
}

-BEGIN PGP SIGNATURE-
Version: PGP 7.0.4

iQA/AwUBQi8GwLNM28ubzTo9EQJxHwCg4H3VBV4ftjY6Jau9DuleH/0mvykAoLee
EKxRsykxCHYpu0r1VRvKe6aq
=RI6I
-END PGP SIGNATURE-



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


RE: GNULib save-cwd.c on Windows Visual Studio 6.0

2005-03-09 Thread Conrad T. Pino
 
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Jim,

 From: Jim Meyering [mailto:[EMAIL PROTECTED]
 
 Here's a patch that should restore the ability of save-cwd to
 work on systems without the fchdir function.
 
 Would you please see if this is sufficient?
 If so, I'll check it in to gnulib (with an AC_CHECK_FUNCS(fchdir)
 in save-cwd.m4).

The patch as submitted does not compile.  This line fails:

return fchdir (cwd-desc);

The patch at message end does compile and the build completes.

Conrad

Index: save-cwd.c
===
RCS file: /cvs/ccvs/lib/save-cwd.c,v
retrieving revision 1.6
diff -u -p -r1.6 save-cwd.c
- --- save-cwd.c  1 Mar 2005 18:15:42 -   1.6
+++ save-cwd.c  9 Mar 2005 14:50:43 -
@@ -44,6 +44,18 @@
 #include chdir-long.h
 #include xgetcwd.h

+/* On systems without the fchdir function (WOE), pretend that open
+   always returns -1 so that save_cwd resorts to using xgetcwd.
+   Since chdir_long requires fchdir, use chdir instead.  */
+#if !HAVE_FCHDIR
+# undef open
+# define open(File, Flags) -1
+# undef fchdir
+# define fchdir(Fd) ( abort (), -1 )
+# undef chdir_long
+# define chdir_long(Dir) chdir (Dir)
+#endif
+
 /* Record the location of the current working directory in CWD so that
the program may change to other directories and later use restore_cwd
to return to the recorded location.  This function may allocate

-BEGIN PGP SIGNATURE-
Version: PGP 7.0.4

iQA/AwUBQi8OqrNM28ubzTo9EQKCQACglWgegbLzUqZdLaxd+HC+ls9Jv7oAn1J5
0z2tXUL54UlQZECFNzsG4PuC
=7E/O
-END PGP SIGNATURE-



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


Re: Feature request/ideas

2005-03-09 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Frank Hemer wrote:
| Here is a more detailed description of the tag-extensions:
Mostly this sounds great, with the few questions/exceptions that I
have noted.
Could you write the final version up as a patch to doc/cvs.texinfo?
| '.origin': Will always resolve to the very first revision. If a
| file has been added on a branch, .origin will resolve to the first
| revision on that branch, otherwise it will follow the mainline.
|
| '.root': Will resolv to  the predecessor of the first revision on
| the focused branch.
I think your terminology is still a little off here.  Technically, the
root revision of a branch is on both the parent and the branch and is
therefore also the first revision on the branch.  This is one of the
reasons that I still think your .origin tag makes no sense.  Could
you please either remove it or provide me with a use case that
explains/justifies it?
| '.next': The next revision on the focused branch. Does _not_ follow
| the mainline as this would prevent access to revisions on a vendor
| branch that were introduced _after_ the first commit/merge onto the
| trunk.
Could you please explain this in more detail?
| If a combined tag with relative extensions is used for commands
| that change the local sandbox and set sticky tags, the resulting
| numeric revision is used for sticky tagging. This is because tags
| like .trunk.prev.prev imho don't really make sense - '.prev',
| '.next' will force usage of numeric sticky tags in any position,
| and all elative tags will if used not in head position.
I agree with you here when .prev or .next are applied to a dynamic
(branch) tag, since a request like the tipe of the branch minus two
revisions seems unlikely to remain meaningful in a dynamic sense, but
I think that applied to a static tag it would be best to leave the
text in the sticky tag for readibility.  release-1.0.prev is not
going to change unless someone moves the release-1.0 tag.
| If the combined tag ends with '.head', this will overwrite -
Could you explain this further?
| I hope I have addressed all issues concerning the new tags, and
| would very much appreciate some feedback and maybe some results
| from testing ...:-)
This all still sounds great, but it cannot be committed without docs
and test cases.
Regards,
Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCLw0zLD1OTBfyMaQRAlYnAJ46v9suhl9Y576IjI5GZGcWckHyBwCeNNtj
cPhg1i6KXaiOwvz6PEgZIX8=
=vEFi
-END PGP SIGNATURE-

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


RE: this happens sometimes

2005-03-09 Thread Jim.Hyslop
Romeo Gourgue wrote two variations on the following:
 Some times when I do a CVS commit, text like the following is appended
 to the bottom of the file that I have committed:
 
 **
 date: Friday, February 18, 19105 @ 14:44
 author: username
 Update of /data/implementation/cvs/operational/bin
 In directory system:/data/frodo1/aroman/bin
 
 Modified Files:
 emacs-init.el ops-env
 Log Message:
 
 
 
 This does not happen every time.  When it does happen, I edit it out
 and recommit; but it is annoying.  This started happening right after
 the aussie-wizard replacement on SOGS.  As part if that project, Otto
 installed a new version (1.12.9) of CVS.  Since then, I have used both
 the new and the old (1.11) versions of CVS; and have seen this problem
 with similar frequency in both versions.
First of all, this is not a chat group, you cannot expect an instant
response. If your second post was because of a suspected error in sending,
then you should state that in your message.

Check your email notification script. This looks like the text that would
normally be sent via email to anyone watching the directory.

-- 
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: Feature request/ideas

2005-03-09 Thread Frank Hemer
On Wednesday 09 March 2005 15:50, Derek Price wrote:
 Frank Hemer wrote:
 | Here is a more detailed description of the tag-extensions:

 Mostly this sounds great, with the few questions/exceptions that I
 have noted.

 Could you write the final version up as a patch to doc/cvs.texinfo?

I certainly will - but I was hoping to receive some reports about ev. bugs so 
these can be fixed _before_ the patch gets applied.

Also you might have noted that I'm not a native english speaker, so this docu 
probably needs some workover ...

 | '.origin': Will always resolve to the very first revision. If a
 | file has been added on a branch, .origin will resolve to the first
 | revision on that branch, otherwise it will follow the mainline.
 |
 | '.root': Will resolv to  the predecessor of the first revision on
 | the focused branch.

 I think your terminology is still a little off here.  Technically, the
 root revision of a branch is on both the parent and the branch and is
 therefore also the first revision on the branch.  This is one of the
 reasons that I still think your .origin tag makes no sense.  Could
 you please either remove it or provide me with a use case that
 explains/justifies it?

Ok, in this case 'first'  has to be replaced with 'second' for '.root'. But I 
suspect there is a better word for this?

Regarding '.origin', it is the only way to target the very first version of a 
file. Using '.origin' and appending an individual number of '.next' 
extensions allows to iterate over all revisions of a file, begining at the 
initial version. The same purpose can be achieved with cvs log and taking the 
revision number - but I think '.origin' is much more handy here.

If a file has been added on a branch, and consequently does not have a '.root' 
version (usually the dead 1.1), '.origin' will return the 1.1.2.1 revision 
(if it has been called from this branch). After a merge onto the trunk, this 
behavior doesn't change. But if (then) invoked from the trunk, '.origin' will 
return 1.2 (or a higher rev. number, depending on the rev. num. it was 
committed to).

If a file has been introduced by cvs import, '.origin' called from the trunk 
resolves to 1.1.1.1.

 | '.next': The next revision on the focused branch. Does _not_ follow
 | the mainline as this would prevent access to revisions on a vendor
 | branch that were introduced _after_ the first commit/merge onto the
 | trunk.

 Could you please explain this in more detail?

Assuming a file has been introduced with cvs import, it will start as 1.1 and 
1.1.1.1. The next vendor import creates 1.1.1.2 and a third 1.1.1.3
At this stage, the file becomes modified and committed to 1.2.
Now two more vendor imports happen, creating 1.1.1.4 and 1.1.1.5.

Starting from 1.1.1.1 and applying several '.next' extensions allows to 
iterate over the vendor branch _without_ jumping onto the trunk.
Because of this, 1.1.1.1.next.next.next will resolve to 1.1.1.4. If it would 
follow the mainline, this would resolve to 1.2.
Non-vendor branchens however are not affected by this.

I'm not really sure whether this makes sense in all situations, but to work 
around this, '.next' would have to take the absolute tag type into account, 
blowing the code and maybe causing some sideeffects I haven't thought of yet.
The code for simply always following the mainline is still in my private rep., 
maybe this functionality can be added in a later step?

 | If a combined tag with relative extensions is used for commands
 | that change the local sandbox and set sticky tags, the resulting
 | numeric revision is used for sticky tagging. This is because tags
 | like .trunk.prev.prev imho don't really make sense - '.prev',
 | '.next' will force usage of numeric sticky tags in any position,
 | and all elative tags will if used not in head position.

 I agree with you here when .prev or .next are applied to a dynamic
 (branch) tag, since a request like the tipe of the branch minus two
 revisions seems unlikely to remain meaningful in a dynamic sense, but
 I think that applied to a static tag it would be best to leave the
 text in the sticky tag for readibility.  release-1.0.prev is not
 going to change unless someone moves the release-1.0 tag.

Unfortunately I don't see an easy way to achieve this. How could I determine 
whether some tag is static or not? In vers_ts.c, I only have information 
about a symbolic tag, but I don't know if this is a branch tag or a static 
tag. I could resolve the tag (requiring rcs-file access) and make the numeric 
display dependent on the result but I think this points into the wrong 
direction. Is there an easy way to find out (in vers_ts.c) what kind of tag 
has been used before?

 | If the combined tag ends with '.head', this will overwrite -

 Could you explain this further?

Taking a rev. num. 1.3.4.7.2.3.
Using a tag like '.root.root.' will resolve to the numeric tag 1.3. Adding 
'.head' will resolve to the head of the trunk because '.head' turns the tag 
into a 

proxy environment variables

2005-03-09 Thread Frank Hemer
Hi,

the 1.12.x series contains the http tunnel web proxy patch. This patch 
originaly allowed to specify the proxy and proxyport using environment 
variables (PSERVER_PROXY) in the form of 'my.proxy.server[:PORT]', in 
addition to specifying it in the CVSROOT. This has the advantage of not 
having to change an existing CVSROOT if the setup of a proxy server has 
changed, or was added later.
I would like to see this behavior in the current 1.12 tree too, because it 
allows to store and manage the proxy setup separate from the CVSROOT.

What do you think?

Regards
Frank
-- 
- The LinCVS Team -
http://www.lincvs.com



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


RE: windows-NT/mkconfig.pl windows-NT/fix-msvc-mak.pl change

2005-03-09 Thread Conrad T. Pino
 
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Derek,

I'm slow to understand the goal.  I'm coming to the conclusion
what you're trying is eliminate the difference between:

 *** config.h.in, generated by mkconfig:

as opposed to:

 *** config.h.in, generated by mkconfig.pl:

and if that's the case then I believe it's not a Windows or
UNIX issue.  I propose it's an operation difference issue as
follows:

The UNIX make process generates intermediates:

fix-msvc-mak
mkconfig

of which mkconfig is used later in the build and fix-msvc-mak
is built but not used in the build.

Previously I wasn't aware of the existence of the intermediates on
UNIX and of course they don't exist on Windows.  The commands I ran
on both Windows and UNIX are:

cd ccvs
perl windows-NT/fix-msvc-mak.pl
cd windows-NT
perl mkconfig.pl
cd ..

which in the case of mkconfig will generate:

 *** config.h.in, generated by mkconfig.pl:

when run on either Windows and UNIX.

I believe no patch is required.  I will correct my process now
that I understand why the intermediates exist.

Conrad

-BEGIN PGP SIGNATURE-
Version: PGP 7.0.4

iQA/AwUBQi9JjrNM28ubzTo9EQIKhgCglpDGRupS5gwAKZD0wxVqMKdlzA4An2rk
Lv3ZH3gShpt7zrOIkbvhB0Vw
=sbX4
-END PGP SIGNATURE-



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


Re: Feature request/ideas

2005-03-09 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Frank Hemer wrote:
| On Wednesday 09 March 2005 15:50, Derek Price wrote:
|
| Frank Hemer wrote: | Here is a more detailed description of the
| tag-extensions:
|
| Mostly this sounds great, with the few questions/exceptions that
| I have noted.
|
| Could you write the final version up as a patch to
| doc/cvs.texinfo?
|
|
| I certainly will - but I was hoping to receive some reports about
| ev. bugs so these can be fixed _before_ the patch gets applied.
|
| Also you might have noted that I'm not a native english speaker, so
| this docu probably needs some workover ...
You won't be the first non-native english speaker to contribute to the
manual.  :)
| | '.origin': Will always resolve to the very first revision. If a
|  | file has been added on a branch, .origin will resolve to the
| first | revision on that branch, otherwise it will follow the
| mainline. | | '.root': Will resolv to  the predecessor of the
| first revision on | the focused branch.
|
| I think your terminology is still a little off here.
| Technically, the root revision of a branch is on both the parent
| and the branch and is therefore also the first revision on the
| branch.  This is one of the reasons that I still think your
| .origin tag makes no sense.  Could you please either remove it
| or provide me with a use case that explains/justifies it?
|
|
| Ok, in this case 'first'  has to be replaced with 'second' for
| '.root'. But I suspect there is a better word for this?
How about first?  .root should resolve to the first revision on the
branch, the revision which is shared with its parent.  The
predecessor of the second revision is at least overly verbose and
will, at times, not make sense, since CVS does not require that a file
on a branch have a second revision in this sense.
| Regarding '.origin', it is the only way to target the very first
| version of a file. Using '.origin' and appending an individual
| number of '.next' extensions allows to iterate over all revisions
| of a file, begining at the initial version. The same purpose can be
| achieved with cvs log and taking the revision number - but I think
| '.origin' is much more handy here.
Ah, so you are saying that there is no way to iterate over the
revisions on a branch without a .origin tag.  BRANCH.root.next yields
a revision on BRANCH's parent.  This makes sense when speaking about
individual files, but use of .origin with multiple files probably
deserves some sort of warning to the user that what they asked for may
not make sense.
Also, iterating BRANCH via .prev until the result == BRANCH.root would
allow iteration in reverse without .origin, but this is not enough for
me to object to .origin any longer.
| If a file has been added on a branch, and consequently does not
| have a '.root' version (usually the dead 1.1), '.origin' will
| return the 1.1.2.1 revision (if it has been called from this
| branch). After a merge onto the trunk, this behavior doesn't
| change. But if (then) invoked from the trunk, '.origin' will return
| 1.2 (or a higher rev. number, depending on the rev. num. it was
| committed to).
|
| If a file has been introduced by cvs import, '.origin' called from
| the trunk resolves to 1.1.1.1.
Even after addition of rev. 1.2?  What about the case where newfile is
added to the trunk after other files were imported?  .origin would
return 1.1.1.1 for some files and 1.1 for newfile.  A dead 1.1
revision for all newly created files would be required to make this
meaningful.
If this (dead 1.1 revisions) were implemented, then the warning I
mentioned above would not be necessry for .origin calculated against
the trunk.
| | '.next': The next revision on the focused branch. Does _not_
| follow | the mainline as this would prevent access to revisions
| on a vendor | branch that were introduced _after_ the first
| commit/merge onto the | trunk.
|
| Could you please explain this in more detail?
|
|
| Assuming a file has been introduced with cvs import, it will start
| as 1.1 and 1.1.1.1. The next vendor import creates 1.1.1.2 and a
| third 1.1.1.3 At this stage, the file becomes modified and
| committed to 1.2. Now two more vendor imports happen, creating
| 1.1.1.4 and 1.1.1.5.
|
| Starting from 1.1.1.1 and applying several '.next' extensions
| allows to iterate over the vendor branch _without_ jumping onto the
| trunk. Because of this, 1.1.1.1.next.next.next will resolve to
| 1.1.1.4. If it would follow the mainline, this would resolve to
| 1.2. Non-vendor branchens however are not affected by this.
|
| I'm not really sure whether this makes sense in all situations, but
| to work around this, '.next' would have to take the absolute tag
| type into account, blowing the code and maybe causing some
| sideeffects I haven't thought of yet. The code for simply always
| following the mainline is still in my private rep., maybe this
| functionality can be added in a later step?
I still don't understand what you are asking here.  

Re: windows-NT/mkconfig.pl windows-NT/fix-msvc-mak.pl change

2005-03-09 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Conrad T. Pino wrote:
| Previously I wasn't aware of the existence of the intermediates on
| UNIX and of course they don't exist on Windows.  The commands I ran
|  on both Windows and UNIX are:
|
| cd ccvs perl windows-NT/fix-msvc-mak.pl cd windows-NT perl
| mkconfig.pl cd ..
|
| which in the case of mkconfig will generate:
|
| *** config.h.in, generated by mkconfig.pl:
|
| when run on either Windows and UNIX.
|
| I believe no patch is required.  I will correct my process now that
| I understand why the intermediates exist.
Yeah, but the intermediates are not necessary.  My patch calls, similarly,
~perl mkconfig.pl
where a simple
~./mkconfig
used to be called.  Since there is no mkconfig file distributed or
checked in, my patch should sync what we are generating.  It also has
the advantage or simplifying by removing the unneeded intermediates.
Regardless, I think you have answered my question.  I will commit the
change and your previous build process should still suffice.
Have you thought about putting the `perl mkconfig.pl' and `perl
fix-msvc-mak.pl' calls into the MSVC build files (is that even
possible with fix-msvc-mak.pl?)?  It's always nice to encode our build
knowledge into automation when possible.
Regards,
Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCL1KVLD1OTBfyMaQRAlmeAKCi0dQecn8Q9lfHndlIm2rt+fFDTACgnbtd
Az/X4epxDLpsm0h7OworT74=
=ZBf6
-END PGP SIGNATURE-

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


Re: Feature request/ideas

2005-03-09 Thread Mark D. Baushke
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Derek Price [EMAIL PROTECTED] writes:

 In the case where the information came out of the directory CVS/Tag
 file, it becomes available in vers-nonbranch, but not otherwise.
 
 In other cases, the RCS file gets parsed anyhow, but only on the
 server.  Of course, since you need RCS information to resolve these
 tags anyhow, I expect you are currently only doing so on the server
 anyhow, whether you realized it or not.
 
 Regardless, I am reconsidering the decision to store numerical
 revision numbers for static tags.  Technically, HEAD is really a
 static tag (it points to a particular set of revision numbers).  It
 just happens to point to the most recent set on the trunk.  Therefore,
 an update might retrieve a new head revision, but a commit will fail,
 as things stand previous to your patch.  I've been assuming that .head
 would work similarly.  Why not .prev and .next too?  Even if only to
 simplify code, why not just leave the sticky tag just as the user
 specified it?  It certainly fulfils the principle of least
 interference, where the user is allowed to shoot themselves in the
 foot if they like since they might find some use for a dynamic sticky
 someday that we didn't imagine.
 
 Of course, on the other side of this argument, I am fairly confident
 that there should not be much use for such a dynamic sticky and,
 therefore, storing a revision number when BRANCH.prev... is supplied,
 should follow the principle of least suprise, even if it might make
 status, log, etc. output slightly less legible.
 
 What do others think?

Does -r.prev mean anything (is it another way to say -r.base.prev)?

If so, there are some kinds of relative sticky tags that would need to
be resolved in some way if they are to be made the sticky revision.

I have no objections to a 

  cvs checkout -rcvs1-11-x-branch-last-merge.prev ccvs

and having the sticky revision in use be updated when the
cvs1-11-x-branch-last-merge tag is moved.

However, I am not sure I understand how 'cvs update -r.base.prev foo'
could work as anything other than a 1.48.4.7.prev as the sticky version
for a file where the baseline version for foo was 1.48.4.7.

I am also wondering how the datestamp version can generally interact
with the new .prev and .next tags...

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

iD8DBQFCL1es3x41pRYZE/gRAiw+AKCeiMkGxMU6v2jxylYTs3J3oPVoiQCgkPQE
MqK3n39/wztXp4QK4Dp6gKw=
=PQk4
-END PGP SIGNATURE-


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


Re: Feature request/ideas

2005-03-09 Thread Frank Hemer
 | | '.origin': Will always resolve to the very first revision. If a
 | |
 |  | file has been added on a branch, .origin will resolve to the
 |
 | first | revision on that branch, otherwise it will follow the
 | mainline. | | '.root': Will resolv to  the predecessor of the
 | first revision on | the focused branch.
 |
 | I think your terminology is still a little off here.
 | Technically, the root revision of a branch is on both the parent
 | and the branch and is therefore also the first revision on the
 | branch.  This is one of the reasons that I still think your
 | .origin tag makes no sense.  Could you please either remove it
 | or provide me with a use case that explains/justifies it?
 |
 | Ok, in this case 'first'  has to be replaced with 'second' for
 | '.root'. But I suspect there is a better word for this?

 How about first?  .root should resolve to the first revision on the
 branch, the revision which is shared with its parent.  The
 predecessor of the second revision is at least overly verbose and
 will, at times, not make sense, since CVS does not require that a file
 on a branch have a second revision in this sense.

Absolutely. With the 'shared with parent' addon its strait forward:-)

 | Regarding '.origin', it is the only way to target the very first
 | version of a file. Using '.origin' and appending an individual
 | number of '.next' extensions allows to iterate over all revisions
 | of a file, begining at the initial version. The same purpose can be
 | achieved with cvs log and taking the revision number - but I think
 | '.origin' is much more handy here.

 Ah, so you are saying that there is no way to iterate over the
 revisions on a branch without a .origin tag.  BRANCH.root.next yields

Yes, got it.

 a revision on BRANCH's parent.  This makes sense when speaking about
 individual files, but use of .origin with multiple files probably
 deserves some sort of warning to the user that what they asked for may
 not make sense.

Well, as stated before:
All relative tags are _only_ valid for individual files, not for directories.
It doesn't matter where the relative tag appears in a combined tag.

If applied on a directory, a warning will be shown complaining about an 
invalid tag. And cvs aborts.

 | If a file has been added on a branch, and consequently does not
 | have a '.root' version (usually the dead 1.1), '.origin' will
 | return the 1.1.2.1 revision (if it has been called from this
 | branch). After a merge onto the trunk, this behavior doesn't
 | change. But if (then) invoked from the trunk, '.origin' will return
 | 1.2 (or a higher rev. number, depending on the rev. num. it was
 | committed to).
 |
 | If a file has been introduced by cvs import, '.origin' called from
 | the trunk resolves to 1.1.1.1.

 Even after addition of rev. 1.2?  What about the case where newfile is
 added to the trunk after other files were imported?  .origin would
 return 1.1.1.1 for some files and 1.1 for newfile.  A dead 1.1
 revision for all newly created files would be required to make this
 meaningful.

As mentioned above, relative tags are not ...
So this only needs to be considered if invoked on more than one file at a 
time. Imho this is explicitely the users choice, and doesn't require an 
additional warning -

 If this (dead 1.1 revisions) were implemented, then the warning I
 mentioned above would not be necessry for .origin calculated against
 the trunk.

 | | '.next': The next revision on the focused branch. Does _not_
 |
 | follow | the mainline as this would prevent access to revisions
 | on a vendor | branch that were introduced _after_ the first
 | commit/merge onto the | trunk.
 |
 | Could you please explain this in more detail?
 |
 | Assuming a file has been introduced with cvs import, it will start
 | as 1.1 and 1.1.1.1. The next vendor import creates 1.1.1.2 and a
 | third 1.1.1.3 At this stage, the file becomes modified and
 | committed to 1.2. Now two more vendor imports happen, creating
 | 1.1.1.4 and 1.1.1.5.
 |
 | Starting from 1.1.1.1 and applying several '.next' extensions
 | allows to iterate over the vendor branch _without_ jumping onto the
 | trunk. Because of this, 1.1.1.1.next.next.next will resolve to
 | 1.1.1.4. If it would follow the mainline, this would resolve to
 | 1.2. Non-vendor branchens however are not affected by this.
 |
 | I'm not really sure whether this makes sense in all situations, but
 | to work around this, '.next' would have to take the absolute tag
 | type into account, blowing the code and maybe causing some
 | sideeffects I haven't thought of yet. The code for simply always
 | following the mainline is still in my private rep., maybe this
 | functionality can be added in a later step?

 I still don't understand what you are asking here.  Of course, .next
 applied to any revision spec with an odd number of dots, e.g. 1.2,
 1.1.1.1, or 1.137.14.980, should simply increment the last set of
 digits (in the given example, to 1.3, 1.1.1.2, or 

Re: Feature request/ideas

2005-03-09 Thread Frank Hemer
On Wednesday 09 March 2005 21:08, Mark D. Baushke wrote:
 Derek Price [EMAIL PROTECTED] writes:
  In the case where the information came out of the directory CVS/Tag
  file, it becomes available in vers-nonbranch, but not otherwise.
 
  In other cases, the RCS file gets parsed anyhow, but only on the
  server.  Of course, since you need RCS information to resolve these
  tags anyhow, I expect you are currently only doing so on the server
  anyhow, whether you realized it or not.
 
  Regardless, I am reconsidering the decision to store numerical
  revision numbers for static tags.  Technically, HEAD is really a
  static tag (it points to a particular set of revision numbers).  It
  just happens to point to the most recent set on the trunk.  Therefore,
  an update might retrieve a new head revision, but a commit will fail,
  as things stand previous to your patch.  I've been assuming that .head
  would work similarly.  Why not .prev and .next too?  Even if only to
  simplify code, why not just leave the sticky tag just as the user
  specified it?  It certainly fulfils the principle of least
  interference, where the user is allowed to shoot themselves in the
  foot if they like since they might find some use for a dynamic sticky
  someday that we didn't imagine.
 
  Of course, on the other side of this argument, I am fairly confident
  that there should not be much use for such a dynamic sticky and,
  therefore, storing a revision number when BRANCH.prev... is supplied,
  should follow the principle of least suprise, even if it might make
  status, log, etc. output slightly less legible.
 
  What do others think?

 Does -r.prev mean anything (is it another way to say -r.base.prev)?

Yes, exactly.

 If so, there are some kinds of relative sticky tags that would need to
 be resolved in some way if they are to be made the sticky revision.

 I have no objections to a

   cvs checkout -rcvs1-11-x-branch-last-merge.prev ccvs

 and having the sticky revision in use be updated when the
 cvs1-11-x-branch-last-merge tag is moved.

which is basically a good idea ...

 However, I am not sure I understand how 'cvs update -r.base.prev foo'
 could work as anything other than a 1.48.4.7.prev as the sticky version
 for a file where the baseline version for foo was 1.48.4.7.

And here you are. Because otherwise (after the update) you would have a sticky 
tag '.base.prev' and a revision number of 1.48.4.6. The next call to update 
(without any params) would again reduce the revision number by one - and 
that's not a good idea;-)

To prevent this, my code in vers_ts.c would need to know whether the symbolic 
tag is a branch tag (a dynamic tag) or not, and the tag would only be 
reverted into a numeric tag in case it is a static tag.

 I am also wondering how the datestamp version can generally interact
 with the new .prev and .next tags...

It can not, as it requires a dynamic tag. And there are only symbolic branch 
tags and '.trunk'.
If a relative tag extension is used, the result is the same as if the 
datestamp version was used with a numeric revision:

cvs diff: tag 1.3 is not in file foo

Regards
Frank
-- 
- The LinCVS Team -
http://www.lincvs.com



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


Re: Feature request/ideas

2005-03-09 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Frank Hemer wrote:
| a revision on BRANCH's parent.  This makes sense when speaking
| about individual files, but use of .origin with multiple files
| probably deserves some sort of warning to the user that what they
| asked for may not make sense.
|
|
| Well, as stated before: All relative tags are _only_ valid for
| individual files, not for directories. It doesn't matter where the
| relative tag appears in a combined tag.
|
| If applied on a directory, a warning will be shown complaining
| about an invalid tag. And cvs aborts.
Hrm.  The real strength of the .root tag, at least, is that it makes
`cvs diff -rBRANCH.root -rBRANCH' possible.  I would hate to go to all
this trouble and not get this feature.  It's just plain not very
useful otherwise.  The same tag specs could be useful in a merge.
And there is the similar matter of `cvs diff -r.commitid.XXX.prev
- -r.commitid.XXX'.  I thought this sort of request was what got you
started on this?
| | If a file has been added on a branch, and consequently does not
|  | have a '.root' version (usually the dead 1.1), '.origin' will
| | return the 1.1.2.1 revision (if it has been called from this |
| branch). After a merge onto the trunk, this behavior doesn't |
| change. But if (then) invoked from the trunk, '.origin' will
| return | 1.2 (or a higher rev. number, depending on the rev. num.
| it was | committed to). | | If a file has been introduced by cvs
| import, '.origin' called from | the trunk resolves to 1.1.1.1.
|
| Even after addition of rev. 1.2?  What about the case where
| newfile is added to the trunk after other files were imported?
| .origin would return 1.1.1.1 for some files and 1.1 for newfile.
| A dead 1.1 revision for all newly created files would be required
| to make this meaningful.
|
|
| As mentioned above, relative tags are not ... So this only needs to
| be considered if invoked on more than one file at a time. Imho this
| is explicitely the users choice, and doesn't require an additional
| warning -
|
| If this (dead 1.1 revisions) were implemented, then the warning I
|  mentioned above would not be necessry for .origin calculated
| against the trunk.
|
| | | '.next': The next revision on the focused branch. Does _not_
|  | | follow | the mainline as this would prevent access to
| revisions | on a vendor | branch that were introduced _after_
| the first | commit/merge onto the | trunk. | | Could you
| please explain this in more detail? | | Assuming a file has been
| introduced with cvs import, it will start | as 1.1 and 1.1.1.1.
| The next vendor import creates 1.1.1.2 and a | third 1.1.1.3 At
| this stage, the file becomes modified and | committed to 1.2. Now
| two more vendor imports happen, creating | 1.1.1.4 and 1.1.1.5. |
|  | Starting from 1.1.1.1 and applying several '.next' extensions
| | allows to iterate over the vendor branch _without_ jumping onto
| the | trunk. Because of this, 1.1.1.1.next.next.next will resolve
| to | 1.1.1.4. If it would follow the mainline, this would resolve
| to | 1.2. Non-vendor branchens however are not affected by this.
| | | I'm not really sure whether this makes sense in all
| situations, but | to work around this, '.next' would have to take
| the absolute tag | type into account, blowing the code and maybe
| causing some | sideeffects I haven't thought of yet. The code for
| simply always | following the mainline is still in my private
| rep., maybe this | functionality can be added in a later step?
|
| I still don't understand what you are asking here.  Of course,
| .next applied to any revision spec with an odd number of dots,
| e.g. 1.2, 1.1.1.1, or 1.137.14.980, should simply increment the
| last set of digits (in the given example, to 1.3, 1.1.1.2, or
| 1.137.14.981) until it finds a revision that exists or determines
| that no further revisions exist on the given branch (in the
| special case of the trunk, this might mean checking 2.x, 3.x, etc
| as well, but this should already be encoded somewhere in rcs.c).
|
| How is this different from you .next specification or any other
| mainline traversal?
|
|
| The mainline traversal would behave as a reverse '.prev'. I have
| mentioned this different behavior because I expect an innocent user
| to think of '.prev' and '.next' as being the opposite.
Ok.
| A 'nice to have' would be following idea:
| IMPORT_VENDOR_BRANCH.origin and several '.next' extensions follow
| the vendor branch while '.trunk.origin' and several '.next'
| extensions follow the mainline.
Huh?
| | | If a combined tag with relative extensions is used for
| commands | | |  | that change the local sandbox and set sticky
| tags, the | | resulting | numeric revision is used for sticky
| tagging. This is | because tags | like .trunk.prev.prev imho
| don't really make sense | - '.prev', | '.next' will force usage
| of numeric sticky tags in | any position, | and all elative tags
| will if used not in head | position. | | I agree with 

Re: Feature request/ideas

2005-03-09 Thread Mark D. Baushke
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Derek Price [EMAIL PROTECTED] writes:

 Frank Hemer wrote:
 
 | a revision on BRANCH's parent.  This makes sense when speaking
 | about individual files, but use of .origin with multiple files
 | probably deserves some sort of warning to the user that what they
 | asked for may not make sense.
 |
 |
 | Well, as stated before: All relative tags are _only_ valid for
 | individual files, not for directories. It doesn't matter where the
 | relative tag appears in a combined tag.
 |
 | If applied on a directory, a warning will be shown complaining
 | about an invalid tag. And cvs aborts.
 
 
 Hrm.  The real strength of the .root tag, at least, is that it makes
 `cvs diff -rBRANCH.root -rBRANCH' possible.  I would hate to go to all
 this trouble and not get this feature.  It's just plain not very
 useful otherwise.  The same tag specs could be useful in a merge.

I agree. I would really like a way to replace the idioms

  cvs tag foo-bp
  cvs tag -b foo-branch
  cvs up -r foo-branch
  .lots of changes and commits
  cvs diff -rfoo-bp -rfoo-branch

with something like:

  cvs tag -b foo-branch
  cvs up -r foo-branch
  .lots of changes and commits
  cvs diff -rfoo-branch.root -rfoo-branch

so that we don't need lots of foo-bp tags in the tree.

The possibility of doing something like this:

  cvs tag -b -rfoo-branch.root foo-redeux-branch

to allow the creation of an alternative implementation of modified code
based on the same original baseline version as foo-branch would also be
interesting.

 And there is the similar matter of `cvs diff -r.commitid.XXX.prev
 -r.commitid.XXX'.  I thought this sort of request was what got you
 started on this?

Yes, it would be highly desirable to be able to do

   cvs udpate -j.commitid.XXX  -j.commitid.XXX.prev

to reverse a particular patch.

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

iD8DBQFCL2q63x41pRYZE/gRAmk9AJ4n+e6RZLChAp4cpIZXSO3SIkoNVgCfRyJs
aiIYG3QNNVv1DN1QU7BllGc=
=Wi+5
-END PGP SIGNATURE-


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


Re: GNULib save-cwd.c on Windows Visual Studio 6.0

2005-03-09 Thread Jim Meyering
Conrad T. Pino [EMAIL PROTECTED] wrote:
...
 Would you please see if this is sufficient?
 If so, I'll check it in to gnulib (with an AC_CHECK_FUNCS(fchdir)
 in save-cwd.m4).

 The patch as submitted does not compile.  This line fails:

 return fchdir (cwd-desc);

 The patch at message end does compile and the build completes.

Thanks.
I've checked that in.


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


RE: GNULib save-cwd.c on Windows Visual Studio 6.0

2005-03-09 Thread Conrad T. Pino
 
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Jim,

 From: Jim Meyering [mailto:[EMAIL PROTECTED]
 
 Conrad T. Pino [EMAIL PROTECTED] wrote:
 ...
  Would you please see if this is sufficient?
  If so, I'll check it in to gnulib (with an AC_CHECK_FUNCS(fchdir)
  in save-cwd.m4).
 
  The patch as submitted does not compile.  This line fails:
 
  return fchdir (cwd-desc);
 
  The patch at message end does compile and the build completes.
 
 Thanks.
 I've checked that in.

I've seen the lib/save-cwd.c change in GULLib CVS on Savannah but
I didn't see the AC_CHECK_FUNCS(fchdir) in save-cwd.m4 change.

Conrad

-BEGIN PGP SIGNATURE-
Version: PGP 7.0.4

iQA/AwUBQi+5KrNM28ubzTo9EQLWKwCgp1C8kpucYC92QRaGblHAp5+z0xIAniOF
WX8BVodiTSIchNoDxIi4ZwT9
=Nwqu
-END PGP SIGNATURE-



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