This commit is contained in:
gferg 2000-07-19 22:45:45 +00:00
parent 89c0bf3916
commit 47b3b9488e
2 changed files with 320 additions and 29 deletions

View File

@ -44,7 +44,7 @@ Revision Control System
<author>Al Dev (Alavoor Vasudevan)
<htmlurl url="mailto:alavoor@yahoo.com"
name="alavoor@yahoo.com">
<date>v12.0, 15 July 2000
<date>v13.0, 19 July 2000
<abstract>
This document is a "practical guide" to very quickly setup CVS/RCS source code
control system. This document also has custom shell scripts which are wrappers on top of CVS. These scripts provide a easy user interface for CVS. The information in this document applies to Linux and as well as to all other flavors of Unix liks Solaris, HPUX, AIX, SCO, Sinix, BSD, SCO, etc..
@ -317,6 +317,208 @@ CVS commands on module 'project'.
<chapt> Intro to CVS commands <label id="Intro_CVS">
-->
<sect> Intro to CVS commands <label id="Intro_CVS">
<p>
cvs provides a rich variety of commands (cvs_command in
the Synopsis), each of which often has a wealth of
options, to satisfy the many needs of source management in
distributed environments. However, you don't have to master
every detail to do useful work with cvs; in fact, five
commands are sufficient to use (and contribute to) the
source repository.
The most commonly used CVS commands are
<bf>checkout</bf>,
<bf>update</bf>,
<bf>add</bf>,
<bf>remove</bf>,
<bf>commit</bf> and
<bf>diff</bf>.
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1> checkout<label id="checkout">
<p>
<bf>cvs checkout modules...</bf>
A necessary preliminary for most cvs work: creates
your private copy of the source for modules (named
collections of source; you can also use a path relative
to the source repository here). You can work
with this copy without interfering with others'
work. At least one subdirectory level is always
created.
<code>
bash$ cvs --help checkout
Usage:
cvs checkout [-ANPRcflnps] [-r rev | -D date] [-d dir]
[-j rev1] [-j rev2] [-k kopt] modules...
-A Reset any sticky tags/date/kopts.
-N Don't shorten module paths if -d specified.
-P Prune empty directories.
-R Process directories recursively.
-c "cat" the module database.
-f Force a head revision match if tag/date not found.
-l Local directory only, not recursive
-n Do not run module program (if any).
-p Check out files to standard output (avoids stickiness).
-s Like -c, but include module status.
-r rev Check out revision or tag. (implies -P) (is sticky)
-D date Check out revisions as of date. (implies -P) (is sticky)
-d dir Check out into dir instead of module name.
-k kopt Use RCS kopt -k option on checkout.
-j rev Merge in changes made between current revision and rev.
(Specify the --help global option for a list of other help options)
</code>
<p>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1>update<label id="update">
<p>
<bf>cvs update</bf>
Execute this command from within your private
source directory when you wish to update your
copies of source files from changes that other
developers have made to the source in the repository.
<code>
bash$ cvs --help update
Usage: cvs update [-APdflRp] [-k kopt] [-r rev|-D date] [-j rev]
[-I ign] [-W spec] [files...]
-A Reset any sticky tags/date/kopts.
-P Prune empty directories.
-d Build directories, like checkout does.
-f Force a head revision match if tag/date not found.
-l Local directory only, no recursion.
-R Process directories recursively.
-p Send updates to standard output (avoids stickiness).
-k kopt Use RCS kopt -k option on checkout.
-r rev Update using specified revision/tag (is sticky).
-D date Set date to update from (is sticky).
-j rev Merge in changes made between current revision and rev.
-I ign More files to ignore (! to reset).
-W spec Wrappers specification line.
(Specify the --help global option for a list of other help options)
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1>add<label id="add">
<p>
<bf>cvs add file...</bf>
Use this command to enroll new files in cvs records
of your working directory. The files will be added
to the repository the next time you run `cvs
commit'. Note: You should use the `cvs import'
command to bootstrap new sources into the source
repository. `cvs add' is only used for new files
to an already checked-out module.
<code>
bash$ cvs --help add
Usage: cvs add [-k rcs-kflag] [-m message] files...
-k Use "rcs-kflag" to add the file with the specified kflag.
-m Use "message" for the creation log.
(Specify the --help global option for a list of other help options)
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1>remove<label id="remove">
<p>
<bf>cvs remove file...</bf>
Use this command (after erasing any files listed)
to declare that you wish to eliminate files from
the repository. The removal does not affect others
until you run `cvs commit'.
<code>
bash$ cvs --help remove
Usage: cvs remove [-flR] [files...]
-f Delete the file before removing it.
-l Process this directory only (not recursive).
-R Process directories recursively.
(Specify the --help global option for a list of other help options)
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1>commit<label id="commit">
<p>
<bf>cvs commit file...</bf>
Use this command when you wish to ``publish'' your
changes to other developers, by incorporating them
in the source repository.
<code>
bash$ cvs --help commit
Usage: cvs commit [-nRlf] [-m msg | -F logfile] [-r rev] files...
-n Do not run the module program (if any).
-R Process directories recursively.
-l Local directory only (not recursive).
-f Force the file to be committed; disables recursion.
-F file Read the log message from file.
-m msg Log message.
-r rev Commit to this branch or trunk revision.
(Specify the --help global option for a list of other help options)
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1>diff<label id="diff">
<p>
<bf>cvs diff file...</bf>
Show differences between files in working directory
and source repository, or between two revisions in
source repository. (Does not change either reposi­
tory or working directory.)
<code>
bash$ cvs --help diff
Usage: cvs diff [-lNR] [rcsdiff-options]
[[-r rev1 | -D date1] [-r rev2 | -D date2]] [files...]
-l Local directory only, not recursive
-R Process directories recursively.
-D d1 Diff revision for date against working file.
-D d2 Diff rev1/date1 against date2.
-N include diffs for added and removed files.
-r rev1 Diff revision for rev1 against working file.
-r rev2 Diff rev1/date1 against rev2.
--ifdef=arg Output diffs in ifdef format.
(consult the documentation for your diff program for rcsdiff-options.
The most popular is -c for context diffs but there are many more).
(Specify the --help global option for a list of other help options)
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1> Emacs Editor <label id="Emacs">
<p>
Emacs is a powerful editor and it supports CVS/RCS - especially
for revision merging and comparing. Emacs main site
is at <url url="http://www.emacs.org">.
<!--
*******************************************
************ End of Section ***************
*******************************************
<chapt> Shell Scripts <label id="Shell Scripts">
-->
<sect> Shell Scripts <label id="Shell Scripts">
@ -487,21 +689,6 @@ This gives diff between version 1.4 and 1.5 on filename.
<chapt> Emacs Editor <label id="Emacs">
-->
<sect> Emacs Editor <label id="Emacs">
<p>
Emacs is a powerful editor and it supports CVS/RCS - especially
for revision merging and comparing. Emacs main site
is at <url url="http://www.emacs.org">.
<!--
*******************************************
************ End of Section ***************
*******************************************
<chapt> RCS Shell scripts <label id="rcs_scripts">
-->
<sect> RCS Shell scripts <label id="rcs_scripts">
@ -523,7 +710,7 @@ shell scripts.
# This will get just one single directory tree
# unix> cotree.sh <directory name>
# See also cofiles.sh
# See also cofiles.sh and ciall.sh
###############################################################
# Setting up RCS (Revision Control System)
@ -611,6 +798,15 @@ else
done
fi
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1> cofiles.sh <label id="cofiles.sh">
<p>
<code>
@ -618,7 +814,7 @@ fi
# cofiles.sh (Check Out files shell script)
# cofiles.sh - Check out all the files in current directory from RCS
# See also cotree.sh and 'man rcsclean'
# See also cotree.sh and 'man rcsclean' and ciall.sh
if [ ! -d RCS ]; then
print "\nDirectory RCS does not exist!!"
@ -626,10 +822,78 @@ if [ ! -d RCS ]; then
exit
fi
while true
do
print -n "\n\nDo you want check-out all files in in read-write mode? <y/n> [n]: "
read ans
if [ "$ans" = "" -o "$ans" = "n" -o "$ans" = "N" ]; then
ans="N"
break
elif [ "$ans" = "y" -o "$ans" = "Y" ]; then
ans="Y"
break
else
print "\nWrong entry! Try again!!"
fi
done
#echo "The ans is : " $ans
# This fails in case of filename=sample,vv in RCS/sample,vv,v
# ls RCS | cut -d',' -f1 | xargs co
# Use match to end of name $, as below -
ls RCS | sed -e's/,v$//g' | xargs co
if [ "$ans" = "Y" ]; then
ls RCS | sed -e's/,v$//g' | xargs co -l
else
ls RCS | sed -e's/,v$//g' | xargs co
fi
</code>
<!--
*******************************************
************ End of Section ***************
*******************************************
-->
<sect1> ciall.sh <label id="ciall.sh">
<p>
<code>
#!/bin/ksh
# ciall.sh (Check in files shell script)
# ciall.sh - Check in all the files in current directory into RCS
# This script is very useful for checking in enmass large number
# of new files into RCS. Saves time by avoiding to type the
# 'description' for every file
# And for files already in RCS, it does regular check-in command
if [ ! -d RCS ]; then
print "\nDirectory RCS does not exist!!"
print "\nWill be creating RCS directory now ...\n"
mkdir RCS
fi
print "\n\nNOTE: This is not log message!"
print "Please enter description (will be used for"
print -n "all the files checked in) : "
read description
find * -prune -type f |
while read ii
do
#echo $ii
if [ -f "RCS/$ii,v" ]; then
print "The file $ii already in RCS"
ci $ii
else
print "The file $ii is new file"
ci $ii << EOF
$description
EOF
fi
done
</code>
<!--
*******************************************

View File

@ -42,7 +42,7 @@ Java Decompiler HOW-TO
<author>Al Dev (Alavoor Vasudevan)
<htmlurl url="mailto:alavoor@yahoo.com"
name="alavoor@yahoo.com">
<date>v1.0, 12 July 2000
<date>v3.0, 19 July 2000
<abstract>
This document will help you to de-compile the Java class programs. This
documents gives a list of decompilers which can reverse
@ -88,21 +88,45 @@ bash$ javap -c <filename>.class
The following are the list of Java decompilers available -
<itemize>
<item> "SourceAgain" from Ahpah corp at <url url="http://www.ahpah.com">
<item> "Class Cracker" from Mayon Software, Australia at <url url="http://www.tip.net.au/~mayon/classcracker/ccorder.html"> and at <url url="http://www.pcug.org.au/~mayon">
<item> Free "Jad" Java Decompiler at
<url url="http://www.geocities.com/SiliconValley/Bridge/8617/jad.html#general">
and at
<url url="http://www.geocities.com/SiliconValley/Bridge/8617/jad.html#gui">
<p>
<item> List of Decompilers, disassemblers and obfuscators are at
<url url="http://dmoz.org/Computers/Programming/Languages/Java">
<p>
<item> Free "Mocha" Java Decompiler at
<url url="http://www.brouhaha.com/~eric/computers"> and download at
<url url="http://www.brouhaha.com/~eric/computers/mocha-b1.zip">
<p>
<item> "DeCafe Pro" from DeCafe, France at <url url="http://decafe.hypermart.net/index.htm">
<p>
<item> "SourceTech Java decompiler" from Source Tech corp at <url url="http://www.srctec.com">
and at <url url="http://members.tripod.com/~SourceTec/jasmine.htm">
<p>
<item> "SourceAgain" from Ahpah corp at <url url="http://www.ahpah.com">
<p>
<item> "Class Cracker" from Mayon Software, Australia at <url url="http://www.tip.net.au/~mayon/classcracker/ccorder.html"> and at <url url="http://www.pcug.org.au/~mayon">
<p>
<item> "IceBreaker" from BreakerTech corp, U.K. at <url url="http://www.breakertech.com">
and at <url url="http://www.breakertech.com/breaker/ice/ice.html#download">
<p>
<item> "NMI Java decompiler" from NMI at
<url url="http://njcv.htmlplanet.com">
and at
<url url="http://njcv.htmlplanet.com/njcv.html">
<item> "SourceTech Java decompiler" from Source Tech corp at <url url="http://www.srctec.com">
and at <url url="http://members.tripod.com/~SourceTec/jasmine.htm">
<item> "Jad" Java Decompiler at
<url url="http://www.geocities.com/SiliconValley/Bridge/8617/jad.html#general">
and at
<url url="http://www.geocities.com/SiliconValley/Bridge/8617/jad.html#gui">
<p>
</itemize>
<!--
@ -161,9 +185,12 @@ every time you run decompiler programs.
<p>
Visit following locators which are related to Java -
<itemize>
<item> <url url="http://www.linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html">
<item> <url url="http://www.linuxdoc.org/HOWTO/Java-CGI-HOWTO.html">
<item> <url url="http://www.linuxdoc.org/HOWTO/JavaStation-HOWTO/index.html">
<item> <url url="http://metalab.unc.edu/LDP/HOWTO/Vim-HOWTO.html" name="Vim color text editor for Java, C++, C">
<item> <url url="http://metalab.unc.edu/LDP/HOWTO/C-C++Beautifier-HOWTO.html" name="Beautifier HOWTO for Java and C++ programs">
<item> <url url="http://metalab.unc.edu/LDP/HOWTO/C++Programming-HOWTO.html" name="C++ Programming HOWTO has support Java like String objects">
<item> <url url="http://metalab.unc.edu/LDP/HOWTO/C++Programming-HOWTO.html" name="C++ Programming HOWTO has support for Java like String objects">
<item> Linux goodies main site <url url="http://www.aldev.8m.com">
<item> Linux goodies mirror site <url url="http://aldev.webjump.com">
</itemize>