Cvs Tab Completion for Modules Under Linux

CVS tab completion for modules under Linux

Actually, as you guys said, Ubuntu has built in support for tab completion of CVS modules.

The one thing I was missing, I have to manually add a mapping of the module name and its alias in the CVSROOT/modules file for the supported completion to work.

How can I hook into tcsh's TAB completion on Linux

From the manpage:

the complete builtin command can be used to tell the shell how to complete words other than filenames, commands and variables

might get you started

Linux CVS Access Control

CVSACL is a patch for CVS. It adds two new subcommands (acl & racl) to cvs for access control list management.

http://cvsacl.sourceforge.net/

How can I list all modules in a CVS repository?

As already described in this answer there are basically three ways to go about this. Which one suits your situation depends firstly on what versions of CVS you are using on both client and server and secondly on your definition of "modules".

  1. If you are referring to modules as they were originally thought of by the CVS authors, i.e. as entries in the CVSROOT/modules file then cvs co -c or cvs co -s will give you that, the only difference between the two being that the latter will sort the output by "status". You can read about the modules file here: http://cvsbook.red-bean.com/cvsbook.html#modules

  2. If you are using at least CVS 1.12.8 or CVSNT and your idea of modules corresponds more to actual directories inside the repository, then cvs ls should be what you want.

  3. Finally, if you are indeed after a remote directory listing but your server is running an older version of CVS, then there's the trick of first performing a "fake" checkout and then simulating a recursive update:

    cvs -d [CVSROOT] co -l .

    cvs -n up -d

Help with CVS in command line after an already checked out module by a GUI app

Checked out working copies usually already contain all the meta data that's needed to have the command line client work on them (look for CVS subfolders containing files such as Root, Repository and Entries.*). The client will always look at that sandbox meta data first before even considering environment variables.

So, no need to export any environment variables if you've already got a checked out working copy - at least no CVS-specific ones - you might need some for enabling SSH tunneling if you're using the :ext: protocol prefix though on *ix-systems even that should typically not be necessary as the defaults are already geared towards that kind of OS.

Note that even checkout or other commands that work directly on the repository (such as rlog, rtag, etc.) do not require any environment variables. Everything that could be specified by variables can also be specified via commandline arguments. The only purpose of defining CVS-specific environment variables such as CVSROOT is to avoid typing the same values over and over again.

tab completion for Ant under Windows?

BASH has a customizable completion mechanism in the builtin complete command. By scripting the complete command, you could do command line completion on almost anything you can think of. The ant target completion is done via a Perl shell script called complete-ant-cmd.pl which is put in the system wide bashrc file in Cygwin.

CMD.exe does not have this mechanism and it cannot be expanded beyond what is already built into it.

As others have mentioned, you can try the ant -p or ant --projecthelp command that will list all targets and their description. Try this build.xml file:

<project name="test" default="target2" basedir=".">
<description>
This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.
</description>

<target name="target1"
description="This is the prime target, but not the default"/>

<target name="target2"
description="This is the default target but not because I said it here"/>

<!-- Target "target3" won't display in "ant -p" because -->
<!-- it has no description parameters. Life is tough. -->

<target name="target3"/>

<target name="target4"
description="This is target #4, but there's no target3"/>
</project>

The output will be:

$ ant -p
Buildfile: /Users/david/build.xml

This is a test project. It is to demonstrate the use
of the "ant -p" command and show all described
targets. The """ probably won't work, but you can use
regular quotes.

Main targets:

target1 This is the prime target, but not the default
target2 This is the default target but not because I said it here
target4 This is target #4, but there's no target3
Default target: target2
$

How can I git-cvsimport multiple modules from a CVS repository, with differing branches?

In theory, you could use git grafts to merge your repositories into one:

See "Is there a clean way to handle two original git repositories that started with the same content?"

In practice, you might want to look at another tool like cvs2git, and check if it does not import branches in a more consistent way.



Related Topics



Leave a reply



Submit