made the names for revision control a lot more cohesive.
fixed the save terminal stuff by only doing it at the outer boundaries of our revision control commands, rather than mixing it all through the bash library functions for version control.
16 files changed:
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
echo "committing repositories at: $(date)"
##############
echo "committing repositories at: $(date)"
+restore_terminal_title
+
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
prune_dir="$1"
##############
prune_dir="$1"
+restore_terminal_title
+
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
dir="$1"; shift
##############
dir="$1"; shift
tempfile=$(generate_rev_ctrl_filelist)
popd &>/dev/null
tempfile=$(generate_rev_ctrl_filelist)
popd &>/dev/null
-perform_revctrl_action_on_file "$tempfile" do_diff
-exit_on_error "performing revision control action do_diff on: $tempfile"
+perform_revctrl_action_on_file "$tempfile" do_revctrl_diff
+exit_on_error "performing revision control action do_revctrl_diff on: $tempfile"
+
+restore_terminal_title
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
# trickery to ensure we can always update feisty meow, including this specific
##############
# trickery to ensure we can always update feisty meow, including this specific
exit_on_error "removing file: $TMPO_CHK"
echo "getting repositories at: $(date)"
exit_on_error "removing file: $TMPO_CHK"
echo "getting repositories at: $(date)"
# perform the checkouts as appropriate per OS.
FULL_LIST="$(dirname $FEISTY_MEOW_APEX) $HOME"
# perform the checkouts as appropriate per OS.
FULL_LIST="$(dirname $FEISTY_MEOW_APEX) $HOME"
checkout_list $FULL_LIST 2>&1 | tee -a "$TMPO_CHK"
exit_on_error "checking out list: $FULL_LIST"
checkout_list $FULL_LIST 2>&1 | tee -a "$TMPO_CHK"
exit_on_error "checking out list: $FULL_LIST"
##############
# regenerate the scripts after getting latest version of feisty meow.
##############
# regenerate the scripts after getting latest version of feisty meow.
+restore_terminal_title
+
# license: MIT
#
# Based on discussion at http://kerneltrap.org/mailarchive/git/2007/11/12/406496
# license: MIT
#
# Based on discussion at http://kerneltrap.org/mailarchive/git/2007/11/12/406496
+
+# mods made to save and restore terminal title by fred for feisty meow codebase.
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
+save_terminal_title
+
+restore_terminal_title
+
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
+save_terminal_title
+
# check for whether we see a .git folder.
if [ ! -d ".git" ]; then
echo This script needs to run in the directory where a git repository lives,
# check for whether we see a .git folder.
if [ ! -d ".git" ]; then
echo This script needs to run in the directory where a git repository lives,
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
git config --global pack.SizeLimit "100m"
git config --global pack.threads "1"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
echo "puffing out repositories at: $(date)"
##############
echo "puffing out repositories at: $(date)"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
# turn off occasionally troublesome setting before checkin.
unset GIT_SSH
# turn off occasionally troublesome setting before checkin.
unset GIT_SSH
tempfile=$(generate_rev_ctrl_filelist)
exit_on_error "generating revision control file list"
tempfile=$(generate_rev_ctrl_filelist)
exit_on_error "generating revision control file list"
-perform_revctrl_action_on_file "$tempfile" do_careful_git_update
+perform_revctrl_action_on_file "$tempfile" do_revctrl_careful_update
exit_on_error "doing a careful update on: $tempfile"
# seems to be needed to cause a merge to be resolved.
exit_on_error "doing a careful update on: $tempfile"
# seems to be needed to cause a merge to be resolved.
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
dir="$1"; shift
##############
dir="$1"; shift
exit_on_error "generating revision control file list"
popd &>/dev/null
exit_on_error "generating revision control file list"
popd &>/dev/null
-perform_revctrl_action_on_file "$tempfile" do_checkin
+perform_revctrl_action_on_file "$tempfile" do_revctrl_checkin
exit_on_error "doing a check-in on: $tempfile"
exit_on_error "doing a check-in on: $tempfile"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
dir="$1"; shift
##############
dir="$1"; shift
exit_on_error "generating revision control file list"
popd &>/dev/null
exit_on_error "generating revision control file list"
popd &>/dev/null
-perform_revctrl_action_on_file "$tempfile" do_report_new
+perform_revctrl_action_on_file "$tempfile" do_revctrl_report_new
exit_on_error "running revision control report"
exit_on_error "running revision control report"
+restore_terminal_title
+
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
filename="$1"; shift
##############
filename="$1"; shift
svn resolve --accept=working "$filename"
exit_on_error "resolving tree conflict by accepting the working directory as the right one"
svn resolve --accept=working "$filename"
exit_on_error "resolving tree conflict by accepting the working directory as the right one"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
dir="$1"; shift
##############
dir="$1"; shift
exit_on_error "generating revision control file list"
popd &>/dev/null
exit_on_error "generating revision control file list"
popd &>/dev/null
-perform_revctrl_action_on_file "$tempfile" do_update
+perform_revctrl_action_on_file "$tempfile" do_revctrl_simple_update
exit_on_error "running revision control update"
exit_on_error "running revision control update"
+restore_terminal_title
+
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
source "$FEISTY_MEOW_SCRIPTS/rev_control/version_control.sh"
##############
dir="$1"; shift
##############
dir="$1"; shift
exit_on_error "generating revision control file list"
popd &>/dev/null
exit_on_error "generating revision control file list"
popd &>/dev/null
-perform_revctrl_action_on_file "$tempfile" do_careful_git_update
+perform_revctrl_action_on_file "$tempfile" do_revctrl_careful_update
exit_on_error "puffing out repository at: $tempfile"
exit_on_error "puffing out repository at: $tempfile"
+restore_terminal_title
+
# http://stackoverflow.com/questions/160104/how-do-you-add-all-untracked-files-in-svn-something-like-git-add-i
#
# http://stackoverflow.com/questions/160104/how-do-you-add-all-untracked-files-in-svn-something-like-git-add-i
#
+source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
+
+save_terminal_title
+
PATTERN="$1"; shift
svn st | egrep "^\\${PATTERN}[ ]+" | \
PATTERN="$1"; shift
svn st | egrep "^\\${PATTERN}[ ]+" | \
sed -e "s|\\\\|/|g" | \
xargs -i "$@" '{}'
sed -e "s|\\\\|/|g" | \
xargs -i "$@" '{}'
+restore_terminal_title
+
##############
# checks the directory provided into the revision control system repository it belongs to.
##############
# checks the directory provided into the revision control system repository it belongs to.
+function do_revctrl_checkin()
{
local directory="$1"; shift
{
local directory="$1"; shift
# make a nice echoer since we want to use it inside conditions below.
local nicedir="$directory"
if [ $nicedir == "." ]; then
# make a nice echoer since we want to use it inside conditions below.
local nicedir="$directory"
if [ $nicedir == "." ]; then
#hmmm: we don't do a puff out on this directory to carefully update the git repo. is there a good reason why?
# we know we at least have to get the remote version synched up to avoid severe tire damage, so it's sensible at
#hmmm: we don't do a puff out on this directory to carefully update the git repo. is there a good reason why?
# we know we at least have to get the remote version synched up to avoid severe tire damage, so it's sensible at
-# least to call do_update, but is there a reason not to call the careful git update instead?
-#AHA, below we do call a careful git update, which is at least partially redundant with calling do_update here.
-# how about pushing the do_update down into the two cases that use it and just not calling it for the git case?
- do_update "$directory"
+# least to call do_revctrl_simple_update, but is there a reason not to call the careful git update instead?
+#AHA, below we do call a careful git update, which is at least partially redundant with calling do_revctrl_simple_update here.
+# how about pushing the do_revctrl_simple_update down into the two cases that use it and just not calling it for the git case?
+ do_revctrl_simple_update "$directory"
exit_on_error "updating repository; this issue should be fixed before check-in."
pushd "$directory" &>/dev/null
exit_on_error "updating repository; this issue should be fixed before check-in."
pushd "$directory" &>/dev/null
fi
# a new set of steps we have to take to make sure the branch integrity is good.
fi
# a new set of steps we have to take to make sure the branch integrity is good.
- do_careful_git_update "$(\pwd)"
+ do_revctrl_careful_update "$(\pwd)"
# we continue on to the push, even if there were no changes this time, because
# there could already be committed changes that haven't been pushed yet.
# we continue on to the push, even if there were no changes this time, because
# there could already be committed changes that haven't been pushed yet.
- restore_terminal_title
-
return 0
}
# shows the local changes in a repository.
return 0
}
# shows the local changes in a repository.
+function do_revctrl_diff
{
local directory="$1"; shift
{
local directory="$1"; shift
pushd "$directory" &>/dev/null
# only update if we see a repository living there.
pushd "$directory" &>/dev/null
# only update if we see a repository living there.
- restore_terminal_title
-
return 0
}
# reports any files that are not already known to the upstream repository.
return 0
}
# reports any files that are not already known to the upstream repository.
+function do_revctrl_report_new
{
local directory="$1"; shift
{
local directory="$1"; shift
pushd "$directory" &>/dev/null
# only update if we see a repository living there.
pushd "$directory" &>/dev/null
# only update if we see a repository living there.
- restore_terminal_title
-
# make the list of directories unique.
local list="$(uniquify $*)"
# make the list of directories unique.
local list="$(uniquify $*)"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
+ do_revctrl_checkin "$outer"
exit_on_error "running check-in (absolute) on path: $outer"
exit_on_error "running check-in (absolute) on path: $outer"
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
+ do_revctrl_checkin "$path"
exit_on_error "running check-in (relative) on path: $path"
exit_on_error "running check-in (relative) on path: $path"
-
- restore_terminal_title
}
#hmmm: below functions are git specific and should be named that way.
}
#hmmm: below functions are git specific and should be named that way.
# the git update process just gets more and more complex when you bring in
# branches, so we've moved this here to avoid having a ton of code in the
# other methods.
# the git update process just gets more and more complex when you bring in
# branches, so we've moved this here to avoid having a ton of code in the
# other methods.
-function do_careful_git_update()
+function do_revctrl_careful_update()
{
local directory="$1"; shift
pushd "$directory" &>/dev/null
{
local directory="$1"; shift
pushd "$directory" &>/dev/null
if [ ! -d ".git" ]; then
# not a git project, so just boil this down to a getem action.
popd &>/dev/null
if [ ! -d ".git" ]; then
# not a git project, so just boil this down to a getem action.
popd &>/dev/null
-echo "special case; not doing careful git update on non git repository: $directory"
- do_update "$directory"
+ log_feisty_meow_event "skipping careful part and doing simple update on non-git repository: $directory"
+ do_revctrl_simple_update "$directory"
if [ $nicedir == "." ]; then
nicedir=$(\pwd)
fi
if [ $nicedir == "." ]; then
nicedir=$(\pwd)
fi
- local blatt="echo -e \nretrieving '$nicedir'..."
+ local blatt="echo -e \ncarefully retrieving '$nicedir'..."
$blatt
local this_branch="$(my_branch_name)"
$blatt
local this_branch="$(my_branch_name)"
}
# gets the latest versions of the assets from the upstream repository.
}
# gets the latest versions of the assets from the upstream repository.
+function do_revctrl_simple_update()
# make a nice echoer since we want to use it inside conditions below.
local nicedir="$directory"
if [ $nicedir == "." ]; then
# make a nice echoer since we want to use it inside conditions below.
local nicedir="$directory"
if [ $nicedir == "." ]; then
- restore_terminal_title
-
{
local list="$(uniquify $*)"
{
local list="$(uniquify $*)"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
+ do_revctrl_simple_update $outer
exit_on_error "running update on: $path"
exit_on_error "running update on: $path"
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
+ do_revctrl_simple_update $path
exit_on_error "running update on: $path"
exit_on_error "running update on: $path"
-
- restore_terminal_title
}
# does a careful update on all the folders in the specified list;
}
# does a careful update on all the folders in the specified list;
# make the list of directories unique.
local list="$(uniquify $*)"
# make the list of directories unique.
local list="$(uniquify $*)"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
# turn repo list back into an array.
eval "repository_list=( ${REPOSITORY_LIST[*]} )"
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
if [[ $outer =~ /.* ]]; then
# yep, this path is absolute. just handle it directly.
if [ ! -d "$outer" ]; then continue; fi
- do_careful_git_update "$outer"
+ do_revctrl_careful_update "$outer"
exit_on_error "running puff-out (absolute) on path: $outer"
exit_on_error "running puff-out (absolute) on path: $outer"
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
else
for inner in $list; do
# add in the directory component to see if we can find the folder.
local path="$inner/$outer"
if [ ! -d "$path" ]; then continue; fi
- do_careful_git_update "$path"
+ do_revctrl_careful_update "$path"
exit_on_error "running puff-out (relative) on path: $path"
exit_on_error "running puff-out (relative) on path: $path"
-
- restore_terminal_title
}
# provides a list of absolute paths of revision control directories
}
# provides a list of absolute paths of revision control directories
local tempfile="$1"; shift
local action="$1"; shift
local tempfile="$1"; shift
local action="$1"; shift
local did_anything=
while read -u 3 dirname; do
local did_anything=
while read -u 3 dirname; do
# pass the current directory plus the remaining parameters from function invocation.
$action .
exit_on_error "performing action $action on: $(pwd)"
# pass the current directory plus the remaining parameters from function invocation.
$action .
exit_on_error "performing action $action on: $(pwd)"
popd &>/dev/null
done 3<"$tempfile"
popd &>/dev/null
done 3<"$tempfile"
echo "There was nothing to do the action '$action' on."
fi
echo "There was nothing to do the action '$action' on."
fi
- restore_terminal_title
-
@name_components = split(/\//, $filename);
$basename = $name_components[$#name_components];
# print "doing diff of $filename against $compare_directory/$basename\n";
@name_components = split(/\//, $filename);
$basename = $name_components[$#name_components];
# print "doing diff of $filename against $compare_directory/$basename\n";
- &do_diff($filename, $compare_directory."/".$basename);
+ &compute_file_differences($filename, $compare_directory."/".$basename);
# checks the differences between the two files and creates appropriate output.
# checks the differences between the two files and creates appropriate output.
+sub compute_file_differences {
local($first, $second) = @_;
# turn stupid pc slashes into normal ones.
local($first, $second) = @_;
# turn stupid pc slashes into normal ones.