Создайте словарь привязок:
public enum Face
{
A, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, J, Q, K
}
public Dictionary<Face, string> cardValues = new Dictionary<Face, string> {
[Face.A] = "A",
[Face.Two] = "2",
[Face.Three] = "3",
...
}
public string card = cardValues[Face.Two]; // "2"
Лично я бы просто сохранил значение карты как целое число и использовал бы массив вместо словаря и перечисления.
Наш скрипт для предварительной фиксации (пакет Windows):
@echo off & setlocal ENABLEEXTENSIONS
set SVNLOOK="E:\Subversion\Program\Subversion 1.5.0\bin\svnlook.exe"
set REPOS=%1%
set TXN=%2%
set LOGFILE=%REPOS%\hooks\log-%TXN%.txt
set GREP=E:\UnxUtils\usr\local\wbin\grep.exe
%SVNLOOK% log -t "%TXN%" "%REPOS%" >%LOGFILE%
set "first="
for /f "delims=" %%a in ('more ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if not defined first ( echo "Please supply a commit comment" >&2 & exit 1 )
REM Check for invalid windows characters in the path
echo Checking >%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "\" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find ":" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "*" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "?" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find """" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^>" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^<" >>%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | find "^|" >>%LOGFILE%
set "first="
for /f "delims=" %%a in ('more +1 ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if defined first ( echo "Please do not use filename characters which are invalid in windows. - Found %first%" >&2 & exit 1 )
REM Tagblock - prevent changes to tag directories
echo Checking >%LOGFILE%
%SVNLOOK% changed -t "%TXN%" "%REPOS%" | %GREP% "^U.*\/tags\/.*" | %GREP% -v -f "%REPOS%\conf\tag-block-exceptions.txt" >>%LOGFILE%
set "first="
for /f "delims=" %%a in ('more +1 ^< "%LOGFILE%"') do (
if not defined first set first=%%a
)
del %LOGFILE%
if defined first (
echo "%first% -- Error: Modifications to tag directories are blocked. To allow these modifications add the path to %REPOS%\conf\tag-block-exceptions.txt" >&2
exit 1 )
Вы можете определить сценарий ловушки перед фиксацией, который отклоняет все фиксации с пустым или слишком коротким сообщением журнала.
Вот сообщение о том, как это сделать .
Конечно, но как вы собираетесь принудительно применять не тарабарщину, содержательные и контекстуализированные сообщения о фиксации?
Лучше просто ударить своих безответственных коллег, когда вы заметите неубедительную / пустую фиксацию. Или словесный эквивалент удара. Просто убедитесь, что им плохо, это заслужено.
Я использовал сценарий ловушки перед фиксацией, чтобы гарантировать, что комментарий фиксации всегда ссылается на номер проблемы в системе отслеживания проблем. Например, такой комментарий, как
fixes frobulator when the moon is full (bug 1234)
, будет принят, потому что он содержит номер ошибки. Даже при таком расположении вы все равно должны доверить разработчику вставку значимого комментария и номера ошибки.
Вам необходимо использовать ловушку предварительной фиксации, которая является настройкой сервера, я написал ее для VisualSVN, которая в основном представляет собой пакетный файл - аналогичные сценарии доступны для серверов SVN, не использующих Windows .
@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
call "C:\program files\visualsvn server\bin\svnlook" log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo Your commit has been blocked because you didn't give any log message 1>&2
echo Please write a log message describing the purpose of your changes and 1>&2
echo then try committing again. -- Thank you 1>&2
exit 1
Вы можете достаточно легко принудительно добавить комментарий коммита, но в итоге вы получите миллион коммитов, в которых написано «отладка» или «тестирование».
Если ваши разработчики этого не сделают. увидеть значение в добавлении сообщений фиксации, заставляющих их вводить что-то не изменит этого.
Что еще хуже, когда пользователи Eclipse интегрировали SVN / CVS таким образом, что они запоминают их последнее сообщение фиксации - и они в конечном итоге фиксируют совершенно не связанный файл с сообщением из их последней задачи / проекта.
TortoiseSVN - это клиент, вы можете захотеть принудительно комментировать сервер Subversion . Или вы можете попросить их прокомментировать свои коммиты.
Не TortoiseSVN, а сама Subversion - настройка на сервере. Вы можете настроить ловушку перед фиксацией, которая принудительно вводит комментарий фиксации. Существуют также хуки предварительной фиксации, которые проверят наличие ссылки на систему отслеживания проблем, такую как Jira, если вы хотите пойти еще дальше.