作業ディレクトリへの変更をコミットまたはプッシュするのを忘れることはありますか? 答えが頻繁ではないが、それが起こったとしても、 プッシュされていないユーティリティに慣れる必要があります。 常にクリーンで一貫した状態のプロジェクトで作業フォルダーを維持するのに役立ちます。
たとえば、私の〜/ workspaceフォルダーには、さまざまなリポジトリーからの約20のプロジェクトがあります。 何らかの理由で、このワークスペースを削除したいです。 これの前に、すべてが確実に命令されているかどうかを確認する必要があります。 手動でこれを行うことは非常に高速ではありません。 そして、このスクリプトが生まれました。
プログラムの猫の短いレビューの下で。
unpushedはPythonプログラムです。 pipまたはeasy_installを使用してインストールします 。
$ sudo pip install unpushed
または
$ pip install --user unpushed
非常に簡単に使用されます。 〜/ workspace作業フォルダー内のコミットされていない変更とプッシュされていない変更をすべてリストするには:
$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)
現在、次のVCSがサポートされています。
- マーキュリアル
- Git
- 転覆
デフォルトでは、非プッシュは
locate(1)
を使用し
locate(1)
、プロジェクトのある作業フォルダー内のリポジトリーを検索します。 また、locateが機能しない場合は、単純な
find(1)
使用できます。
$ unpushed -w ~/workspace
--help
オプションを指定してユーティリティを呼び出すと、他のコマンドラインスイッチについて知ることができます。
デスクトップ通知
$ unpushed-notify ~/workspace
変更がある場合は、プッシュされていないものを呼び出し、デスクトップに通知を表示します(Linuxではlibnotifyライブラリを使用)。 スケジュールに従ってこのユーティリティを呼び出すと便利です。 これを行うには、(!)ユーザーのcrontabエディターを実行します。
$ crontab -e
次のような行を追加します。
*/10 18-20 * * * unpushed-notify ~/workspace
それ以降は、作業日の終わりに作業フォルダーが10分ごとにスキャンされます。 コミットされていない変更が検出されると、デスクトップにメッセージが表示されます。
制限事項
リストされているすべてのVCSで、コミットされていない変更のサポートを利用できます。 フレーム化されていないブランチは、Gitでのみサポートされます。 Mercurialのサポートを追加するのは非常に簡単なはずですが、私はそれを使用したことがなく、その方法がわかりません。
デスクトップ通知は、pynotifyライブラリを使用するLinuxでのみ機能します。 すべての最新のディストリビューションで。
免責事項
これは、 コミットされていないプロジェクトの分岐点です。 未処理のブランチとデスクトップ通知のサポートが追加されました。 私は自分自身に気付いたのですが、その時だけ、他の誰かに役立つと思いました。 したがって、ユーティリティは主にLinux for Gitでの使用に限定されています。
他のオペレーティングシステムの通知サポートやHgのブランチのサポートを追加したい場合は-よく。 githubでのプルリクエストを受け入れます。