a2ps-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add style sheet for C# language


From: earthur
Subject: Re: Add style sheet for C# language
Date: Wed, 25 Sep 2002 11:29:02 +0000

Akim,

In one of the messages you posted you said I should
post the diffs to this list first before starting the
checkin.  Sorry for being so basic but what diff command
do I used?

Also, does the ChangeLog get updated automatically or
manually?

Merci,
/Ed
> 
> | I'm getting ready to commit e.ssh (and vera.ssh).
> | I'm presently bootstrapping a 4-1x tree, I already
> | have a "latest" tree.
> | 
> | I don't seem to have 'clcommit' on my system!?
> 
> cvs ci is OK, but here is the version of clcommit I use.  I should
> document this somewhere, thanks!
> 
> #! /bin/sh
> 
> # clcommit version 0.9.5
> 
> # Copyright (C) 1999, 2000, Free Software Foundation
> 
> # This script is Free Software, and it can be copied, distributed and
> # modified as defined in the GNU General Public License.  A copy of
> # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
> 
> # Originally by Gary V. Vaughan <address@hidden>
> # Pretty much rewritten by Alexandre Oliva <address@hidden>
> 
> # This scripts eases checking in changes to CVS-maintained projects
> # with ChangeLog files.  It will check that there have been no
> # conflicting commits in the CVS repository and print which files it
> # is going to commit to stderr.  A list of files to compare and to
> # check in can be given in the command line.  If it is not given, all
> # files in the current directory (and below, unless `-l' is given) are
> # considered for check in.
> 
> # The commit message will be extracted from the differences between a
> # file named ChangeLog* in the commit list, or named after -C, and the
> # one in the repository (unless a message was specified with `-m' or
> # `-F').  An empty message is not accepted (but a blank line is).  If
> # the message is acceptable, it will be presented for verification
> # (and possible edition) using the $PAGER environment variable (or
> # `more', if it is not set, or `cat', if the `-f' switch is given).
> # If $PAGER exits successfully, the modified files (at that moment)
> # are checked in, unless `-n' was specified, in which case nothing is
> # checked in.
> 
> # usage: clcommit [-v] [-h] [-f] [-l] [-n] [-q] [-z N] [-C ChangeLog_file]
> #                 [-m msg|-F msg_file|-1] [--] [file|dir ...]
> 
> # -f      --force       don't check (unless *followed* by -n), and just
> #                       display commit message instead of running $PAGER
> # -l      --local       don't descend into subdirectories
> # -m msg  --message=msg set commit message
> #         --msg=msg     same as -m
> # -F file --file=file   read commit message from file
> # -1      --first       extract first entry from ChangeLog, no cvs diff
> # -C file --changelog=file extract commit message from specified ChangeLog
> #         --fast        same as --force --first
> # -n      --dry-run     don't commit anything
> # -q      --quiet       run cvs in quiet mode
> # -zN     --compress=N  set compression level (0-9, 0=none, 9=max)
> # -v      --version     print version information
> # -h,-?   --help        print short or long help message
> 
> name=clcommit
> : ${CVS=cvs}
> cvsopt=
> updateopt=
> commitopt=
> dry_run=false
> commit=:
> update=:
> log_file="${TMPDIR-/tmp}/commitlog.$$"
> first=false
> 
> rm -f "$log_file"
> trap 'rm -f "$log_file"; exit 1' 1 2 15
> 
> # this just eases exit handling
> main_repeat=":"
> while $main_repeat; do
> 
> repeat="test $# -gt 0"
> while $repeat; do
>     case "$1" in
>     --fast)
>         shift
>       set fnord --force --first ${1+"$@"}
>       shift
>       ;;
>     -f|--force)
>       update=false
>       PAGER=cat
>       shift
>       ;;
>     -l|--local)
>       updateopt="$updateopt -l"
>       commitopt="$commitopt -l"
>       shift
>       ;;
>     -m|--message|--msg)
>       if test $# = 1; then
>           echo "$name: missing argument for $1" >&2
>           break
>       fi
>       if $first || test -f "$log_file"; then
>           echo "$name: you can have at most one of -m, -F and -1" >&2
>           break
>       fi
>       shift
>       echo "$1" > "$log_file"
>       shift
>       ;;
>     -F|--file)
>       if $first || test -f "$log_file"; then
>           echo "$name: you can have at most one of -m, -F and -1" >&2
>           break
>       fi
>       if test $# = 1; then
>           echo "$name: missing argument for $1" >&2
>           break
>       fi
>       shift
>       if cat < "$1" > "$log_file"; then :; else
>           break
>       fi
>       shift
>       ;;
>     -1|--first)
>         if test -f "$log_File"; then
>           echo "$name: you can have at most one of -m, -F and -1" >&2
>           break
>       fi
>       first=:
>       shift
>       ;;
>     -C|--[cC]hange[lL]og)
>         if test $# = 1; then
>           echo "$name: missing argument for $1" >&2
>           break
>       fi
>       shift
>       if test ! -f "$1"; then
>           echo "$name: ChangeLog file \`$1' does not exist" >&2
>           break
>       fi
>       ChangeLog="$1"
>       shift
>       ;;
>     -n|--dry-run)
>       commit=false
>       update=true
>       shift
>       ;;
>     -q|--quiet)
>       cvsopt="$cvsopt -q"
>       shift
>       ;;
>     -v|--verbose)
>       cvsopt="$cvsopt -t"
>       shift
>       ;;
>     -z|--compress)
>       if test $# = 1; then
>           echo "$name: missing argument for $1" >&2
>           break
>       fi
>       case "$2" in
>       [0-9]) :;;
>       *)  echo "$name: invalid argument for $1" >&2
>           break
>           ;;
>       esac
>       cvsopt="$cvsopt -z$2"
>       shift
>       shift
>       ;;
> 
>     -m*|-F*|-C*|-z*)
>       opt=`echo "$1" | sed '1s/^\(..\).*$/\1/;q'`
>       arg=`echo "$1" | sed '1s/^-[a-zA-Z0-9]//'`
>       shift
>       set -- "$opt" "$arg" ${1+"$@"}
>       ;;
>     --message=*|--msg=*|--file=*|--[Cc]hange[Ll]og=*|--compress=*)
>       opt=`echo "$1" | sed '1s/^\(--[^=]*\)=.*/\1/;q'`
>       arg=`echo "$1" | sed '1s/^--[^=]*=//'`
>       shift
>       set -- "$opt" "$arg" ${1+"$@"}
>       ;;
> 
>     -v|--version)
>       sed '/^# '$name' version /,/^# Heavily modified by/ { s/^# //; p; }; d' 
> < $0
>       exit 0
>       ;;
>     -\?|-h)
>       sed '/^# usage:/,/# -h/ { s/^# //; p; }; d' < $0 &&
>       echo
>       echo "run \`$name --help | more' for full usage"
>       exit 0
>       ;;
>     --help)
>       sed '/^# '$name' version /,/^[^#]/ { /^[^#]/ d; s/^# //; p; }; d' < $0
>       exit 0
>       ;;
>     --)
>       shift
>       repeat=false
>       ;;
>     -*)
>       echo "$name: invalid flag $1" >&2
>       break
>       ;;
>     *)
>       repeat=false
>       ;;
>     esac
> done
> # might have used break 2 within the previous loop, but so what
> $repeat && break
> 
> $update && \
> if echo "$name: checking for conflicts..." >&2
>    ($CVS $cvsopt -q -n update $updateopt ${1+"$@"} 2>/dev/null \
>     | while read line; do
>       echo "$line"
>       echo "$line" >&3
>       done | grep '^C') 3>&1 >/dev/null; then
>   echo "$name: some conflicts were found, aborting..." >&2
>   break
> fi
> 
> if test ! -f "$log_file"; then
>   if test -z "$ChangeLog"; then
>     for f in ${1+"$@"}; do
>       case "$f" in
>       ChangeLog* | */ChangeLog*)
>         if test -z "$ChangeLog"; then
>           ChangeLog="$f"
>       else
>           echo "$name: multiple ChangeLog files: $ChangeLog and $f" >&2
>           break
>       fi
>       ;;
>       esac
>     done
>   fi
> 
>   echo "$name: checking commit message..." >&2
>   if $first; then
>     skipping=:
>     sed 's,^,+,' < ${ChangeLog-ChangeLog} |
>     while read line; do
>       case "$line" in
>       "+2"*) if $skipping; then skipping=false; else break; fi;;
>       "+ "*)
>       echo "$name: *** Warning: lines should start with tabs, not spaces; 
> ignoring line:" >&2
>       echo "$line" | sed 's/^.//' >&2;;
>       "+      "*)
>         $skipping || echo "$line" ;;
>       esac
>     done |
>     sed 's,^\+        ,,' > "$log_file" || break
>   else
>     $CVS $cvsopt diff -u ${ChangeLog-ChangeLog} |
>     while read line; do
>       case $line in
>       "--- "*) :;;
>       "-"*)
>       echo "$name: *** Warning: the following line in ChangeLog diff is 
> suspicious:" >&2
>       echo "$line" | sed 's/^.//' >&2;;
>       "+ "*)
>       echo "$name: *** Warning: lines should start with tabs, not spaces; 
> ignoring line:" >&2
>       echo "$line" | sed 's/^.//' >&2;;
>       "+") echo;;
>       "+      "*) echo "$line";;
>       esac
>     done |
>     sed -e 's,\+      ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > "$log_file" \
>     || break
>   fi
> # The sed script above removes "+TAB" from the beginning of a line, then
> # deletes the first and/or the last line, when they happen to be empty
> fi
> 
> if grep '[^   ]' < "$log_file" > /dev/null; then :; else
>   echo "$name: empty commit message, aborting" >&2
>   break
> fi
> 
> if grep '^$' < "$log_file" > /dev/null; then
>   echo "$name: *** Warning: blank lines should not appear within commit 
> messages." >&2
>   echo "$name: *** They should be used to separate distinct commits." >&2
> fi
> 
> ${PAGER-more} "$log_file" || break
> 
> sleep 1 # give the user some time for a ^C
> 
> # Do not check for empty $log_file again, even though the user might have
> # zeroed it out.  If s/he did, it was probably intentional.
> 
> if $commit; then
>   $CVS $cvsopt commit $commitopt -F $log_file ${1+"$@"} || break
> fi
> 
> main_repeat=false
> done
> 
> rm -f "$log_file"
> 
> # if main_repeat was not set to `false', we failed
> $main_repeat && exit 1
> exit 0
> 
> 
> | So is this correct:
> | 
> | % cd <4-1x>/a2ps/sheets
> | % cvs add e.ssh
> | % cvsdiff e.ssh
> | (presumably send the patches to this list)
> | % clcommit e.ssh
> | % emacs sheets.map
> | (make changes)
> | % cvsdiff sheets.map
> | (send changes to list)
> | % clcommit sheets.map
> | % cd ..
> | % emacs README ChangeLog
> | (make changes)
> | % cvsdiff README
> | % cvsdiff ChangeLog
> | % clcommit README
> | % clcommit ChangeLog
> 
> Nope: run cvsdiff only once (no args), at the end.  And run clcommit
> once (no args) at the end too.
> 
> 
> | One of the other threads mentioned clcommit being
> | part of libtool...I have libtool but no clcommit...
> 
> Nope, that's wrong.  It's part of the cvs-utils (or the cvsutils, I
> don't recall which one: both exist).
> 
> | Also, what's the ground rule on check-in comments...
> | use'em?  (E.g.  cvs add -m 'Specman style sheet' e.ssh)
> 
> clcommit takes care of this.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]