Merge pull request #150 from jvanasco/fixes-subversion

Fixes for subversion
This commit is contained in:
Tom Limoncelli
2016-04-23 06:58:22 -04:00
4 changed files with 38 additions and 10 deletions

View File

@@ -29,6 +29,7 @@ Table of Contents
- [Replace expired keys:](#replace-expired-keys) - [Replace expired keys:](#replace-expired-keys)
- [Some common errors:](#some-common-errors) - [Some common errors:](#some-common-errors)
- [Using Blackbox without a repo](#using-blackbox-without-a-repo) - [Using Blackbox without a repo](#using-blackbox-without-a-repo)
- [Some Subversion gotchas:](#some-subversion-gotchas)
- [How to submit bugs or ask questions?](#how-to-submit-bugs-or-ask-questions) - [How to submit bugs or ask questions?](#how-to-submit-bugs-or-ask-questions)
- [Developer Info](#developer-info) - [Developer Info](#developer-info)
- [Alternatives](#alternatives) - [Alternatives](#alternatives)
@@ -636,6 +637,13 @@ The following commands have been tested outside a repo:
- `blackbox_edit_start` - `blackbox_edit_start`
- `blackbox_edit_end` - `blackbox_edit_end`
Some Subversion gotchas:
========================
The current implementation will store the blackbox in `/keyrings` at the root of the entire repo. this will create an issue between environments that have different roots (ie, checking out `/` on development vs `/releases/foo` in production). To get around this, you can `export BLACKBOX_REPOBASE=/path/to/repo` and set a specific base for your repo.
This was originally written for git and supports a two-phase commit, in which `commit` is a local commit and "push" sends the change upstream to the version control server when something is registered or deregistered with the system. The current implementation will immediately `commit` a file (to the upstream subversion server) when you execute a `blackbox_*` command.
How to submit bugs or ask questions? How to submit bugs or ask questions?
==================================== ====================================

View File

@@ -62,6 +62,11 @@ export REPOBASE=$(physical_directory_of "$REPOBASE")
# FIXME: Verify this function by checking for .hg or .git # FIXME: Verify this function by checking for .hg or .git
# after determining what we believe to be the answer. # after determining what we believe to be the answer.
if [[ -n "$BLACKBOX_REPOBASE" ]]; then
echo "Using custom repobase: $BLACKBOX_REPOBASE"
export REPOBASE="$BLACKBOX_REPOBASE"
fi
KEYRINGDIR="$REPOBASE/$BLACKBOXDATA" KEYRINGDIR="$REPOBASE/$BLACKBOXDATA"
BB_ADMINS_FILE="blackbox-admins.txt" BB_ADMINS_FILE="blackbox-admins.txt"
BB_ADMINS="${KEYRINGDIR}/${BB_ADMINS_FILE}" BB_ADMINS="${KEYRINGDIR}/${BB_ADMINS_FILE}"
@@ -567,7 +572,7 @@ function vcs_ignore_git() {
} }
# Subversion # Subversion
function vcs_ignore_svn() { function vcs_ignore_svn() {
svn propset svn:ignore "$(vcs_relative_path "$file")" svn propset svn:ignore "$file" "$(vcs_relative_path)"
} }
# Perforce # Perforce
function vcs_ignore_p4() { function vcs_ignore_p4() {

View File

@@ -19,6 +19,11 @@ if [[ $1 != 'yes' ]]; then
fi fi
fi fi
if [[ $VCS_TYPE = "unknown" ]]; then
echo 'Not in a known VCS directory'
exit 1
fi
change_to_vcs_root change_to_vcs_root
echo VCS_TYPE: $VCS_TYPE echo VCS_TYPE: $VCS_TYPE
@@ -30,6 +35,11 @@ vcs_add "${KEYRINGDIR}"
touch "$BLACKBOXDATA/$BB_ADMINS_FILE" "$BLACKBOXDATA/$BB_FILES_FILE" touch "$BLACKBOXDATA/$BB_ADMINS_FILE" "$BLACKBOXDATA/$BB_FILES_FILE"
vcs_add "$BLACKBOXDATA/$BB_ADMINS_FILE" "$BLACKBOXDATA/$BB_FILES_FILE" vcs_add "$BLACKBOXDATA/$BB_ADMINS_FILE" "$BLACKBOXDATA/$BB_FILES_FILE"
if [[ $VCS_TYPE = "svn" ]]; then
echo
echo
echo '`subversion` automatically tracks the ignored files; you just need to commit.'
else
IGNOREFILE="$(vcs_ignore_file_path)" IGNOREFILE="$(vcs_ignore_file_path)"
test -f "$IGNOREFILE" && vcs_add "$IGNOREFILE" test -f "$IGNOREFILE" && vcs_add "$IGNOREFILE"
@@ -38,3 +48,4 @@ echo
echo echo
echo 'NEXT STEP: You need to manually check these in:' echo 'NEXT STEP: You need to manually check these in:'
echo ' ' $VCS_TYPE commit -m\'INITIALIZE BLACKBOX\' keyrings "$IGNOREFILE" echo ' ' $VCS_TYPE commit -m\'INITIALIZE BLACKBOX\' keyrings "$IGNOREFILE"
fi

View File

@@ -52,5 +52,9 @@ for target in "$@"; do
done done
echo "========== UPDATING VCS: DONE" echo "========== UPDATING VCS: DONE"
if [[ $VCS_TYPE = "svn" ]]; then
echo "Local repo updated and file pushed to source control (unless an error was displayed)."
else
echo "Local repo updated. Please push when ready." echo "Local repo updated. Please push when ready."
echo " $VCS_TYPE push" echo " $VCS_TYPE push"
fi