git reset の指定パスにワイルドカード(*)を使う

git reset -- (ワイルドカードを含んだpath)

上記でOK

背景とか説明

git add . の実行後に git reset を行うと全ての登録を削除できる(unstage)

ちなみに git add は普通にワイルドカードを使う事が出来る。

git add (ワイルドカードを含んだpath)

git reset を1ファイルのみ unstage する場合は以下のコマンド

git reset (path)

同じようなファイルを複数除く場合、1つずつ unstage していくのは面倒なのでワイルドカードを使いたい場合

git reset (ワイルドカードを含んだpath)

とすると以下のエラーが出現

fatal: ambiguous argument '(ワイルドカードを含んだpath)' unknown revision or path not in the working tree.

Use '--' to separate paths from revisions, like this:

'git <command> [<revision>...] -- [<file>...]'

引数がリビジョンか path か不明なため '--' を使ってはっきりさせろということ

Gitのエラー表示が丁寧すぎて便利。ありがとうございます。

StyleCop 4.7の解析でDesignerファイルを簡単に除去

StyleCopをデフォルト設定で使用していると、Visual Studioで自動作成されるDesignerファイルの警告があまりにも多く出現する。Visual Studio ...

非常に邪魔なので除去できないか調査してみるとDesignerファイルの一つ一つに

// <auto-generated />

と記述すれば警告が消えるようだが、面倒すぎたので再調査。

するとStyleCopのデフォルト設定に除外設定が存在することが発覚。 下図右側のAnalyze designer filesを変更してファイル保存すればOK

f:id:sechs:20140321205715p:plain

そういえば設定ファイルを編集するときに StyleCopSettingEditor.exe を実行するけど Settings.StyleCop を実行ファイルへD&Dして開くことはなかなか気づかなかった...

Git Bashの反応が突然なくなる問題

Git for Windows を利用しているといつの間にか文字入力すらできなくなる問題が発生していた。

解決方法が全く解らず、いつもGit Bashを再起動していたけど、
簡単な解決方法がわかったので公開

現象と原因
何も文字入力していないときにtabキーを押下すると止まる。
使用できるコマンドをtab補完するため?

解決方法
Ctrl+Cで強制停止を行うと解決しやすい

あくまで解決しやすいだけなので注意

Linuxでもcmdでも起こらないため、
なんとなくGit Bashのバグっぽい


Git (version 1.9.0-preview20140217) で確認

VsVimのインデントが勝手にspaceからtabに変更される問題の解決法

Visual Studio拡張機能に操作をvim化するプラグインがあり、非常に便利に活用している。しかしいつの頃からか挿入モードで文字入力するとインデントが勝手にSpaceからtabに変更され、非常に使いづらかった。特にC#でソースを触る場合はデフォルトがSpaceであるため非常に使い勝手が悪かった。

Visual Studioオプションのエディター設定は正常にSpaceになるように設定しているのに、まったく変更に意味が無く、VsVimの無効化も考えたが操作に不満が出るため我慢して使っていた。

簡易的な解決方法としてVimコマンドで以下を入力していたが、ファイル毎の設定なのですべてのファイルに対応することが非常に面倒だった。

:set expandtab

 

しかし、先ほどこの解決方法をようやく発見したので記述。

VsVim Nonstandard Behavior · jaredpar/VsVim Wiki · GitHub

上記を参照すると、ユーザープロファイル以下に次のファイルを作成すればOKだった。

%USERPROFILE%\.vsvimrc

 set vsvim_useeditordefaults

 これにより、ようやくVisual Studioのデフォルト設定でVsVimのtab, space問題を解決することが出来た。

 

非常に快適。

 

2014/02/24 13:44 追記

追加で調査すると、%USERPROFILE% 以下の.vimrc の存在そのものが問題だった事が発覚。
.vimrcを削除すると問題なく起動した。
これが存在する場合、ファイル内が空でもダメだった。
.vimrcが存在するならば .vsvimrcも必要みたいなので注意。

 

環境

Windows Vista
Visual Studio 2010
VsVim

 

 

ショートカットにパスを通してプログラム起動までを短縮する方法

ショートカットをまとめたフォルダを作成しそこにパスを通すと Win+R のファイル名実行で起動可能

マウス移動よりもWindowsキー→検索よりも効率的!

 
例えば、コピーしてきたエクセルのショートカットを "excel" と名称変更すると...
 
excel<Enter>
Excelが起動
 
 
_人人人人人人人_
> Excelが起動 <
 ̄Y^Y^Y^Y^Y^Y ̄

 

 

参考
よくつかう ショートカット「ファイル名を指定して実行」編 - うれしいブログ

 

Redmine バグ修正チケットのテンプレート

バグチケットの流れ

  1. 発見者がチケット発行
  2. チケット担当者はバグ修正開始時にステータスを進行中に変更
  3. チケット担当者はバグ修正後にステータスを解決、進捗率を90%に変更
    (この部分Gitを使って自動変更されるように設定している)
  4. 担当者を発見者に変更
    (このときにどのような修正を行ったかを簡易的に記述)
  5. 発見者はバグの修正を確認して、ステータスを終了、進捗率を100%に変更。

 

1. と 4.の場合にチケットに記述するテンプレートを作成している

1. バグ発見時のチケット説明のテンプレート

|_. 項目        |_. 内容        |
|【バージョン】 |1.01.0000      |
|【現象】       |例:表示バグ|
|【再現性】     | 有 or 無      |
|【データ】     |(画像など必要な場所)|

【詳細/手順】

# (#は段落番号自動追加)この文を消去して手順追加
#
# .

 上記のように入力すると以下の表示になるf:id:sechs:20140117110206p:plain

 

4. バグ修正時のテンプレ

【解決方法】修正/延期/仕様/非再現/修正済み
【原因】 
【対策】

以下の表示

f:id:sechs:20140117110517p:plain

4はGitのコミットコメントで良さそう。
(面倒くさいともっぱら評判)

コミットコメントは1行目は英語で、3行目からは日本語で書くのがよい?

 

 

 

.Net Frameworkの難読化ツール Dotfuscator CE 5 をコマンドラインで実行

Visual Studio 2010 の中に標準添付されているDotfuscator Community Edition 5.0は有料版じゃなくてもコマンドラインで難読化ファイルを作成できる。

しかし、ユーザー登録が必要。
その後にダウンロードできるアップデートを適用すると dotfuscatorCLI.exe が新しく作成されるので、これを利用する。

 

 参考(・・・というかまんまこれ)
How to use PreEmptive Dotfuscator in Visual Studio Setup project to protect your code

 

PreEmptive のサイトにログインした後、 Download  タブの中へ行く、
To run Dotfuscator CE5 (2010) from the command line, install version 5.0.2601 を見つければ後はDLしてインストールするのみ。

f:id:sechs:20131217153825p:plain

 

その後、Visual Studio 2010 のプロジェクトの ビルド後に実行するコマンドライン
以下を入れればOK。

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\PreEmptive Solutions\Dotfuscator Community Edition\dotfuscatorCLI.exe" /in:$(TargetFileName) 
copy /y "$(TargetDir)Dotfuscated\$(TargetFileName)" "$(TargetDir)$(TargetFileName)"

 この部分はOSが64bit か 32bitか判別してProgram files の場所を適切に変更するバッチファイルの方が良さそう。

 

Vista なので Visual Studio 2012以降は残念ながら調べきれず。
7にする許可が欲しい...

 

追記 2013/12/18 16:39

バッチファイルとビルド後のコマンドラインを作成したので記述

 

.xmlで、Dotfuscatorの設定データを読みだして変換実行している。

Release_Obfuscation.bat

@echo off

 

if exist "%systemroot%\sysnative\" (

  echo 32bit on 64bit

  set ProgramFilesRoot=%ProgramFiles(x86)%

) else if exist "%systemroot%\syswow64\" (

  echo 64bit on 64bit

  set ProgramFilesRoot=%ProgramFiles(x86)%

) else (

  echo 32bit on 32bit

  set ProgramFilesRoot=%ProgramFiles%

)

 

set DOTFUSCATOR_CLI=%ProgramFilesRoot%\Microsoft Visual Studio 10.0\PreEmptive Solutions\Dotfuscator Community Edition\dotfuscatorCLI.exe

 

set dotfuscatorXML=%1

 

rem --- exec ---

 

echo "%DOTFUSCATOR_CLI%" %dotfuscatorXML%

 

"%DOTFUSCATOR_CLI%" %dotfuscatorXML%

 

.

ビルド後のコマンドライン Releaseでのみ実行

if $(ConfigurationName) == Release (

  call $(SolutionDir)Release_Obfuscation.bat "$(SolutionDir)Dotfuscator.xml"

  move /y $(TargetDir)Dotfuscated\$(TargetFileName) $(TargetDir)$(TargetFileName)

)