カテゴリー
コンピューター

【Git】複数ブランチをマージするときに git diff の statt オプションが役立ちました♪

複数ブランチをマージするときのポイント

  • 変更量の多いブランチから取り込みたい
  • 変更量を確認するのに、マージ前に git diff –stat を使うと便利
  • 2つ目以降に取り込むブランチの変更量は徐々に減っていくため、取り込みば取り込むほど次第に楽になっていく。
  • ただし、これは精神的なもので、マージ内容、結果には影響を及ぼさない。
  • コンフリクト時は、git checkout –conflict=diff3 でコンフリクトマーカーを書き直す。
    自分たちの分 (ours)、相手側 (マージしようとしているブランチ) の分 (theirs)、共通 (両方のブランチの共通の祖先) の分 (base) の3つを表示する。

コマンド

# 変更量の統計を表示
git diff HEAD origin/feature --stat
# コンフリクトマーカーを書き直す。
# 通常のマーカーである "ours" と "theirs" に加え、"base" も表示
git checkout --conflict=diff3 .
カテゴリー
コンピューター

【Git】バージョン管理したいファイルだけを .gitignore に記述する書き方

.git ディレクトリ以下のファイルはすべてバージョン管理されます。

無視したい、追跡対象外としたいファイルについては .gitignore ファイルを作成し、そこに記述することで管理しないようにできますの。

ブラックリスト方式ですわね♪

逆に、バージョン管理したいファイルだけをリストアップする、ホワイトリスト方式は可能なのかしら?

.gitignore ファイルの記述を工夫することで可能となりましたのでその方法をノートいたします。

ポイント

  • すべてのファイル、フォルダを無視するように設定する。
  • その上で、管理したいファイルを無視しない設定を付けて指定する。
  • 行頭に ! を付けることで無視しないように設定する。
カテゴリー
コンピューター

Vagrant のプロビジョニングのシェルスクリプトファイルに引数を渡す方法

Vagrant でプロビジョニングをして、WordPress を構築したいと思いましたの。

このとき、WordPress の URL を指定しなければなりません。

Vagrant の開発環境ですので、Vagrantfile で設定する IP アドレスを指定したいですわ。

そうなりますと、Vagrantfile からシェルスクリプトファイルに引数を渡せないかしら、と思い当たります。

今回、その方法をノートいたします。

ポイントと Vagrantfile

  • shell プロビジョナーの args オプションを使用する。
  • path オプションには $1 などの引数を記述する必要はない。
# ipアドレスをシェルスクリプトに渡したいので、変数を定義する。
ipadress = "192.168.56.11"

Vagrant.configure(2) do |config|
  config.vm.network "private_network", ip: ipadress
  config.vm.provision "shell" do |shell|
    shell.path = "wordpress.sh"
    shell.args = [ipadress]
  end
end
カテゴリー
Microsoft

Entity Framework で複合主キーを設定する方法と Find の使い方

エラーとなったダメなモデル例

[Key]
public int GroupId { get; set; }

[Key]
public int UserId {get; set; }
カテゴリー
Microsoft

シンプルな形で、登録や更新ボタンをクリックしたときに確認アラートを表示するコード

MVC5 プロジェクトで、新規登録や更新ボタンをクリックした後に確認のアラートを表示することとなりました。今回はその方法をノートいたします。

シンプルな方法ですが、それゆえに穴がありそうな気もしていますの。その点について、検証等はしておりませんこと、予め申し上げます。

ポイント

  • input タグの onclick 属性に、return confirm('登録してよろしいですか?'); を指定すれば、submit が実行される前に確認アラートが表示される。
  • <input type="submit" value="登録" onclick="return confirm('登録してよろしいですか?');" />

実現するには jQuery?、Bootstrap?JavaScript?、と悩みましたけれども、JavaScript を少し記述するだけで実現できました♪

カテゴリー
Microsoft

【MVC5】WebForms に MVC5 を含めたプロジェクトですぐに発生した次の問題への対処方法♪ → ファイルまたはアセンブリ ‘System.Web.Mvc, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)

作成環境情報

  • Windows 10 Pro 64 bit
  • Microsoft Visual Studio Community 2015
    Version 14.0.25421.03 Update 3
    Microsoft .NET Framework
    Version 4.6.01038

作成プロジェクト情報

  • .NET Framework 4.6.1
  • ASP.NET Web Application (.NET Framework)
  • ソリューション・プロジェクト名: WebApplication1
  • ASP.NET 4.6.1 テンプレート: Web フォーム
  • フォルダーおよびコア参照を追加する: [x] MVC
  • 認証の変更: 認証なし

エラーを再現する

カテゴリー
Linux

【WordPress】root ユーザで WP-CLI を使ってインストール・セットアップしたい時のポイント

Vagrant のプロビジョニング時に WordPress をインストールしたいですの。

プロビジョニングは基本的に root ユーザで実行されます。

コマンドラインから WordPress を扱える WP-CLI が、この影響を受けてエラーとなってしまいました><。

いくつかの失敗を経て root ユーザでも WP-CLI を扱えるようになりましたの!

今回は root ユーザでの WP-CLI コマンドと、失敗事例をノートいたします。

環境

  • CentOS 7
  • WP-CLI version: 0.23.1
カテゴリー
コンピューター

【Windows】【Git】ファイルサーバに作ったリポジトリを自分の PC で使う

ポイント

  • bare リポジトリでなくとも、リモートリポジトリとして扱うことが可能
  • ローカルリポジトリでファイルサーバ上にあるものを、ただ単に git clone すれば取得してリモートリポジトリとして扱うことが可能
  • bare リポジトリでないリポジトリを git clone するには、.git フォルダの置いてあるフォルダのパスを指定すればよい。

実践

カテゴリー
コンピューター

【Git】コンフリクトが発生する3つのブランチのマージをしたときの記録とポイント

概要

共通の祖先をもつ3つのブランチをマージしたい

  • origin/feature1
  • origin/feature2
  • origin/feature3

  • feature1-2-3

へとマージしたいですわ。

なお feature1-2-3 は master からチェックアウトしたマージ専用のブランチですの。

マージ手順概要

  1. master ブランチで feature1-2-3 ブランチでを作成
  2. feature1-2-3 ブランチにチェックアウト
  3. origin/fiature1 をマージコミットを作成してマージ
  4. origin/feature2 を –no-commit 指定でマージ
  5. コンフリクトを解消してコミット
  6. origin/feature3 を –no-commit 指定でマージ
  7. コンフリクトを解消してコミット

気がついたこと

  • ローカルブランチを改めて作成する必要は無い。リモートリポジトリの追跡ブランチ (fetch した状態) からマージ可能だった。
  • マージするときは、origin/feature1 といったリモートリポジトリのつ追跡ブランチを直接指定すればよい。
  • コンフリクトの解消は、Atom の merge-conflicts を使用した。過度に自動的にならず、Git のマーカーのハイライトとそのカウントに特化していて使いやすかった。

使用したコマンドまとめ

カテゴリー
コンピューター

【Git】Windows での開発時に改行コードを揃えるように設定し、既存コードに反映する方法

改行コードの Windows の Git のデフォルト設定での場合、CRLF でチェックアウトされます。

この状態ですと例えば CentOS のキックスタートファイルやシェルファイルで CR 部分が文字列として追加されてしまいます。

これによって、ファイルやディレクトリ作成時、意図しない名前となり、エラーとなってしまいました><。

今回、このエラーを回避した Git の操作テクニックを、2 つノートいたします♪

ポイント

  • .gitattributes でプロジェクトの改行コードを制御
  • 一旦ファイルを削除することによって、既存ファイルへ改行コード設定を反映