序文の代わりに...
長い間、meldでどのように行われたかについてのコードを見たいと思っていましたが、コンソールでのみでした。また、GITファイルバージョン管理システムに接続することも望んでいました。 一般に、mcを離れることなくすべてが1つのボタンで行われるようにします。
Ydiff
チャンネルに登場すると(またはトラックに乗っていたとしたら...)ある特定のダニエルボルカが現れ、騒ぎ、騒ぎ、逃げ出しました。真夜中の司令官。 それらの1つにはydiff。[Ch]およびzdiff。[Ch]が含まれていました...判明したように、私が取得したかったのは、昔のmc-mpの フォークとru-forkの最新バージョンです。 2日間の「カット」の後、ファイル比較機能を最新バージョンのmcに接続しました...半分の戦いが行われました。 :)
GITリポジトリを表示
Gitfsパネルプラグイン
2番目の問題は、GITリポジトリのパッチを真夜中の司令官に直接、リポジトリディレクトリから表示することです。 そして、右側のパネルでリポジトリをナビゲートできるようにすることで、真夜中の司令官のためにVFSを書くことを考えました。 「ピッキング」の数分後、 gitfsの最初の生バージョンが誕生しました
現在完全に機能しているが最終バージョンではないものを以下に示します。
#!/ bin / sh
LANG = C
umask 077
gitfs_list ( )
{
DATE = ` date + "%b%d%H:%M " `
GIT_DIR = "$ 2 / .git"
ユーザー = ` whoami`
git ls-files | fname を 読み ながら
する
echo "-r-r-r-- 1 $ user 0 0 $ DATE` dirname $ fname` /(git) ` basename $ fname` "
やった
}
gitfs_copyout ( )
{
echo -e "$ 2" > "$ 4"
echo "$ 3" | sed -e s / \ ( git \ ) \ // >> "$ 4"
}
ケース 「$ 1」
list ) gitfs_list "$ @" ;;
copyout ) gitfs_copyout "$ @" ;;
* ) exit 1 ;;
エサック
出口 0
Gitlogfsパネルプラグイン
リポジトリをナビゲートするだけでなく、あらゆるリビジョンのファイルを受信できるようにしたいと考えました。 このためにgitlogfsプラグインが作成されました。
#!/ bin / sh
LANG = C
changesetfs_list ( )
{
DATE = ` date + "%b%d%H:%M " `
GIT_DIR = ` head -n1 $ 2` " .git "
fname = ` tail -n1 $ 2`
USER = ` whoami`
git log --abbrev = 7 --pretty = "format:%at%h%an" " $ fname " | chset を 読みながら
する
TIMESTAMP = ` echo $ chset | cut -f1 -d "" `
DATE = ` date -d @ " $ TIMESTAMP " + "%b%d%H:%M " `
NAME = ` echo $ chset | cut -f2 -d "" ` " " ` basename $ fname `
echo "-rw-rw-rw- 1 $ USER 0 0 $ DATE $ NAME "
やった
}
changesetfs_copyout ( )
{
GIT_DIR = ` head -n1 $ 2` " .git "
fname = ` tail -n1 $ 2`
chset = ` echo " $ 3 " | cut -f 1 -d "" `
filecommit = ` git show --raw --pretty = tformat: % h " $ chset " " $ fname " | grep ^: | grep ... | cut -f3 -d "" | cut -f1 -d "。" `
git show " $ filecommit " > "$ 4"
}
ケース 「$ 1」
list ) changesetfs_list "$ @" ; exit 0 ;;
copyout ) changesetfs_copyout "$ @" ; exit 0 ;;
エサック
1 番出口
真夜中の司令官へのgitfsおよびgitlogfsプラグインの接続
パネルプラグインをmcに接続するには、真夜中の司令官〜/ .mc / extfs.dのホームディレクトリに配置するだけです 。 プレフィックス(git)で始まるファイルをクリックしたときにgitlogfsプラグインが呼び出されるようにするには、このタイプのファイルの説明を〜/ .mc / bindingsファイルに追加する必要があります。
正規表現 / ^ \ ( git \ )
オープン = % cd % p #gitlogfs
アートワーク
gitfsの呼び出しは、GITリポジトリディレクトリのcd #gitfsコマンドによって行われます。

リポジトリ内のナビゲーションは、他のファイルシステムと同様に行われます。

gitlogfsへのログインは 、プレフィックス(git)が付いたプロジェクトファイルでEnterキーを押すことで実行されます。

ファイルの2つの任意のリビジョンの比較は、ホットキーCtrl-x、Ctrl-yを使用して実行されます
