作業ディレクトリの変更制御

おそらくすべての開発者は、さまざまなプロジェクトのチェックアウト(svn)とクローン(git、hg)を含む作業フォルダーを持っています。 ワークスペース、ワーク、srcなどのように呼び出します。



作業ディレクトリへの変更をコミットまたはプッシュするのを忘れることはありますか? 答えが頻繁ではないが、それが起こったとしても、 プッシュされていないユーティリティに慣れる必要があります。 常にクリーンで一貫した状態のプロジェクトで作業フォルダーを維持するのに役立ちます。



たとえば、私の〜/ 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がサポートされています。



デフォルトでは、非プッシュは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でのプルリクエストを受け入れます。



All Articles