Skip to main content

unpushed

Scan version control for uncommitted and unpushed changes

This is fork of “uncommitted” project originally created by Brandon Rhodes.

“unpushed” adds some features:

  • support for checking branches for unpushed commits,

  • desktop notification.

Preface from original author

When working on one version-controlled project on my hard drive, I often flip over quickly to another project to make a quick change. By the end of the day I have forgotten about that other change and often find it months later when I enter that repository again. I needed a way to be alerted at the end of each day about any uncommitted changes sitting around on my system.

Thus was born this “uncommitted” script: using either your system locate(1) command or by walking a filesystem tree on its own, it will find version controlled directories and print a report on the standard output about any uncommitted changes still sitting on your drive. By running it from a cron(8) job you can make this notification routine.

Running “unpushed”

By default “unpushed” uses the locate(1) command to scan for repositories, which means that it can operate quickly even over very large filesystems like my home directory:

$ unpushed ~

But you should be warned: because the locate(1) database is only updated once a day on most systems, this will miss repositories which you have created since its last run. To be absolutely sure to see all current repositories, you should instead ask “unpushed” to search the filesystem tree itself. To do this on your “devel” directory, for example, you would type this:

$ unpushed -w ~/devel

Not only will the output of “-w” always be up-to-date, but it is usually faster for small directory trees. The default behavior of using locate(1) (which can also be explicitly requested, with “-l”) is faster when the directory tree you are searching is very large.

Should you ever want a list of all repositories, and not just those with uncommitted changes, you can use the “-a” option:

$ unpushed -a ~

Also you can list exact files or braches was changed using the “-v” verbose option:

$ unpushed -v ~

You can always get help by running “unpushed” without arguments or with the “-h” or “–help” options.

Desktop notification

Application use system depended desktop notification facility. To show desktop notification run this command:

$ unpushed-notify ~

On Linux this is done through pynotify library. On OS X through pyobjc. On other systems this feature is not implemented yet.

You can add this line to your crontab (crontab -e):

*/10 18-20 * * *   unpushed-notify ~

This will show you notification about uncommitted and unpushed changes every 10 minutes starting from 6pm ending at 8pm.

Do not forget to add unpushed-notify to cron PATH!

Supported VCs

At the moment, “unpushed” supports:

TODO

  • Check svn existence before using it

  • Check locate existence before using it

Changelog

1.2.0 (2017 Sep 25)

  • Python 3 Migration

1.1.0 (2012 May 22)

  • Fix README markup

  • Report untracked files separately

  • Add -t option to ignore untracked files

  • Show not pushed changesets in Mercurial. Thanks Guilherme Gondim for testing

1.0.2 (2012 April 27)

  • Fix setup script

Metadata

Release files for unpushed 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unpushed 1.3.0
File Size Uploaded
unpushed-1.3.0.tar.gz 6.7 kB Details

Release files / unpushed-1.3.0.tar.gz

Download URL unpushed-1.3.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2fadd7f055bd7af58b30dff2dfde9c24226041d20889e73f6be590330b8ab306
BLAKE2b-256 checksum
How to use checksums
6a1ae38897dcb282ab4d5884be9e156fa77af9d718651f54a82706f1b5d3e7e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.3.0 This release

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.2

1 release file

1.0.1

2 release files

1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page