aa=`;ls;-l;$lockfile;|;awk;"{print;"Locking;developers;unix;login;name;is;=;";$3}";`
print;$aa
print;"That;developer;should;do;scommit;OR;sunlock;to;release;the;lock"
print;";"
#;;;;;;;print;"You;can;also;use;-F;option;to;force;edit;the;file;even;if"
#;;;;;;;print;"the;file;is;locked;by;another;developer.;But;you;must;talk;to"
#;;;;;;;print;"other;developer;to;work;concurrently;on;this;file.";
#;;;;;;;print;"For;example;-;this;option;is;useful;if;you;work;on;a;seperate"
#;;;;;;;print;"C;function;in;the;file;which;does;not;interfere;with;other"
#;;;;;;;print;"developer."
#;;;;;;;print;";"
exit
fi
#;Get;read-only;copy;now....
if;[;!;-e;$1;];;then
(
cd;$hme
cvs;-r;checkout;$fdname;1>/dev/null
)
fi
#;Check;if;file;already;exists....
if;[;-f;$1;];;then
user_perms=";"
group_perms=";"
other_perms=";"
user_perms=`ls;-l;$1;|;awk;"{print;$1;}";|;cut;-b3-3;`
group_perms=`ls;-l;$1;|;awk;"{print;$1;}";|;cut;-b6-6;`
other_perms=`ls;-l;$1;|;awk;"{print;$1;}";|;cut;-b9-9;`
if;[;"$user_perms";=;"w";-o;"$group_perms";=;"w"
-o;"$other_perms";=;"w";];;then
print;"nError:;The;file;is;writable.;Aborting;$cmdname;......"
print;";;;;;;;You;must;backup,;scommit;or;delete;file;and"
print;";;;;;;;try;$cmdname;againn"
exit
fi
#print;"nNote:;The;file;$1;is;read-only."
#print;"Hence;I;am;moving;it;to;$1.$bkextn;....n"
mv;-f;$1;$1.$bkextn
chmod;444;$1.$bkextn
elif;[;-d;$1;];;then
print;"nError:;$1;is;a;directory;and;NOT;a;file.;Aborting;$cmdname;....n"
exit
fi
#;Create;subshell
print;"nNow;getting;the;file;$1;from;CVS;repository;...n"
(
cd;$hme
#echo;$fdname
#;Use;-A;option;to;clear;the;sticky;tag;and;to;get;
#;the;HEAD;revision;version
if;[;"$FLAG1";=;"";];;then
cvs;-w;checkout;-A;$fdname
else
cvs;-w;checkout;-A;-$FLAG1;$OARG1;$fdname
fi
)
if;[;-e;$1;];;then
touch;$lockfile
fi
#pwd
print;"nDone;$cmdname"
#print;"nTip;(Usage):;$cmdname;n"
--------------------------------------------------------------------------------
4.3;scommit;
注意;:;Korn;shell;/bin/ksh;在你从Linux;CD-ROM;安装;pdksh*.rpm;时就会产生;
请把他存成一般文字档并改变存取权限;chmod;a rx;
--------------------------------------------------------------------------------
#!/bin/ksh
#;CVS;program;scommit
#;Program;to;commit;the;changes;and;check;in;the;file;into;CVS
cmdname=`basename;$0`
Usage()
{
print;"nUsage:;$cmdname;[-r;revision_number];"
print;"The;options;-r;are;optional;"
print;"For;example;-;"
print;";$cmdname;-r;1.1;foo.cpp"
print;";$cmdname;foo.cpp;"
print;";"
}
#;Command;getopt;will;not;supported;in;next;major;release.;
#;Use;getopts;instead.;
while;getopts;r:;ii
do
case;$ii;in
r);FLAG1=$ii;;OARG1="$OPTARG"
?);Usage;;exit;2
esac
done
shift;`;expr;$OPTIND;-;1;`
#echo;FLAG1;=;$FLAG1;,;OARG1;=;$OARG1
if;[;$#;-lt;1;];;then
Usage
exit;2
fi
if;[;-d;$1;];;then
Usage
exit;2
fi
hme=`;echo;$HOME;|;cut;-f1;-d";";;`
if;[;"$hme";=;"";];;then
print;"nError:;$HOME;is;not;set!!n"
exit
fi
#;Find;sub-directory
cur_dir=`pwd`
#echo;$cur_dir
len=${#hme}
len=$(($len; ;2))
#echo;$len
subdir=`;echo;$cur_dir;|;cut;-b;$len-2000;`
#echo;$subdir
if;[;"$subdir";=;"";];;then
fdname=$1
else
fdname=$subdir"/"$1
fi
#;If;file;is;already;checked;out;by;another;user....
cvs_root=`;echo;$CVSROOT;|;cut;-f1;-d";";;`
if;[;"$cvs_root";=;"";];;then
print;"nError:;$CVSROOT;is;not;set!!n"
exit
fi
cldir=$CVSROOT/$subdir/Locks
mkdir;$cldir;2>/dev/null
#;Get;the;working;revision;number;of;the;file....
#;Use;tmpfile;as;the;arg;cannot;be;set;inside;the;sub-shell
tmpfile=$hme/sedit-lock.tmp
rm;-f;$tmpfile;2>/dev/null
推荐阅读
- 1 CVS RCS HOWTO 原始程式码版本控制系统
- Linux 2.4 NAT HOWTO
- 5 Ethernet HOWTO Linux以太网-HOWTO 电缆、同轴电缆、双绞线
- The Linux Bootdisk HOWTO 中译版
- Beowulf 中文HOWTO
- Sound Blaster AWE 32/64 HOWTO 如何在Linux设定声卡
- Soundblaster 16 PnP Mini-Howto 如何在Linux设定16位P
- 新闻 Leafsite mini-HOWTO
- 使用LILO做为Win95+WinNT+Linux多重开机 mini-HOWTO
- LINUX modules 模块安装 MINI-HOWTO
