[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.