0.631 2024-10-22 Released-By: PERLANCAR; Urgency: low
- No functional changes.
- [ux] Add/tweak logging statements.
0.630 2023-07-16 Released-By: PERLANCAR; Urgency: medium
- No functional changes.
- Remove usage of smartmatch to avoid deprecation warning under
perl 5.38.
0.629 2021-01-31 Released-By: PERLANCAR; Urgency: low
- No functional changes.
- [doc] Mention Git::Got, Group::Git.
0.628 2021-01-31 Released-By: PERLANCAR; Urgency: high
- Merge two releases 0.627 & 0.627.1.
0.627.1 2021-01-31 Released-By: PERLANCAR; Urgency: medium
- Add new subcommand: commit.
- [subcommand exec] Add option: command_opts.
- [ux] Add --recent & -r as shortcut for --min-repo-access-time='2 weeks
ago'.
- UPDATE: Rename version to 0.627.1 due to duplicate.
0.627 2020-10-30 Released-By: PERLANCAR; Urgency: medium
[subcommand check]
- [ux] Exit non-zero when there is unclean repo.
0.626 2020-01-31 Released-By: PERLANCAR; Urgency: low
- Avoid the use of From_str::alami date coercion for now as
DateTime::Format::Alami is flaky.
0.625 2019-11-29 Released-By: PERLANCAR; Urgency: medium
- Update coerce rule names in Sah schemas.
- Forgot why I added ENV{LOG}=1, remove it.
0.624 2018-10-30 Released-By: PERLANCAR
- Tweak Sah schema to allow --min-repo-access-time 0.
0.623 2018-09-27 Released-By: PERLANCAR
- [bugfix] Fix conditional ordering 'needs merging' before 'needs
commit'.
0.622 2018-01-17 Released-By: PERLANCAR
- sync: Add action 'list-source-repos'.
0.621 2017-11-24 Released-By: PERLANCAR
- Add -M as shortcut for --skip-mtime-check.
0.620 2017-10-19 Released-By: PERLANCAR
- When syncing file/nongit-dir under dry-run, run rsync with
--dry-run so we can see what files/dirs would be updated.
0.61 2017-06-21 Released-By: PERLANCAR
- No functional changes.
- Switch from Log::Any to Log::ger.
0.60 2016-12-20 Released-By: PERLANCAR
- Skip testing when rsync-new2old is not available in PATH
[RT#119318].
0.59 2016-12-15 Released-By: PERLANCAR
- [refactor] Extract check-mtime functionality to a separate script
'rsync-new2old'.
0.58 2016-11-29 Released-By: PERLANCAR
- No functional changes.
- [build] Rebuild with fixed Pod::Weaver::Plugin::Rinci to eliminate
subcommand with name '' which got accidentally added to Subcommands
POD section.
0.57 2016-11-29 Released-By: PERLANCAR
- No functional changes.
- [doc] Tweak/add documentation.
0.56 2016-11-29 Released-By: PERLANCAR
- Add protection against wrong direction of rsync by checking newest
mtime. When rsync-ing non-repo file/dir, we now protect against wrong
direction of rsync by first finding "the newest mtime" for source and
target. "Newest mtime" is calculated by recursively traversing a dir
and finding the file/subdir with the newest mtime. When target's
"newest mtime" is greater than source's, the rsync for that non-repo
file/dir is skipped, unless --skip-mtime-check is specified.
0.55 2016-06-18 Released-By: PERLANCAR
- [optimize] check_bunch(): To save one stat() call per dir, assume any
dir that does not start with dot to be a repo instead of checking its
.git/.
0.54 2016-06-16 Released-By: PERLANCAR
- No functional changes.
- [test] Fix failing test reports due to 'git' not configured yet
(no user.name and user.email config) [CT].
0.53 2015-06-14 Released-By: PERLANCAR
- exec, sync: Add dry-run feature, sort repos by recentness when
--min-repo-access-time is specified.
0.52 2015-06-14 Released-By: PERLANCAR
- [Incompatible change] Expect float(epoch) instead of DateTime object
as date in --min-repo-access-time, since the new str_alami_en date
coerce rule no longer requires use to coerce to DateTime object.
0.51 2015-06-14 Released-By: PERLANCAR
- [Removed] Remove --sort option from all subcommands except ls. Remove
sorting by .git/commit-timestamp and stop updating those files because
we are now exclusively using repos.db.
- check: Add --dry-run to quickly show the order of repos to be
processed without actually doing any 'git status'.
- Add option --min-repo-access-time to select only "recent repos", using
information from repos.db. This can cut down sync/check time
significantly if you only care about recently accessed
(committed/status-ed/pushed into or by repo mtime) and you happen to
have hundreds/thousand+ repos in your bunch and you modify only a few
of them daily. If you use 'gitbunch sync' daily, for example, you can
use "--min-repo-access-time '1 day ago'".
- [not yet] sync: Skip sync-ing special files like repos.db and
.gitbunch-sync-timestamp, even when given --include-files.
- Use App::reposdb to manipulate repos.db.
0.50 2015-11-05 Released-By: PERLANCAR
- [Incompatible change] sync: Now defaults to not using rsync --del
option for more safety, unless --rsync-del option is given.
0.49 2015-09-09 Released-By: PERLANCAR
- No functional changes.
- [Bugfix] Increase prereq IPC::System::Locale version to 0.03
which groks -log [thanks Slaven Rezic] [RT#106728].
0.48 2015-09-03 Released-By: PERLANCAR
- No functional changes.
- [dist] Move spec prereqs from RuntimeRequires to
DevelopRecommends to reduce deps but still allow indicating spec
requirement.
0.47 2015-08-17 Released-By: PERLANCAR
- No functional changes.
- Switch from Log::Any to Log::Any::IfLOG.
0.46 2015-07-25 Released-By: PERLANCAR
- [Bugfix] [Regression] Make 'gitbunch check' CLI output nothing by
default, like before.
0.45 2015-07-25 Released-By: PERLANCAR
- check: Also put detailed result in result metadata to avoid being
blanked by Perinci::CmdLine.
- Add sort choice: db-commit-timestamp (or -db-commit-timestamp). This
method looks for commit timestamps in $source/repos.db, which can be
cheaper compared to stat-ing hundreds of .git/commit-timestamp. Your
post-commit script must update this SQLite database. I use gitbunch on
a bunch dir containing ~850 repos. Using the older commit-timestamp
sort (instead of this newer db-commit-timestamp sort), when
synchronizing from an external USB harddisk there is an annoying delay
of 10-30s before sync-ing the first repo. That is the time spent doing
the sort. With the new db-commit-timestamp, sync-ing first repo starts
immediately.
0.44 2015-01-22 Released-By: PERLANCAR
- Switch CLI to Perinci::CmdLine::Any (-prefer_lite) which now
already has progress bar feature too.
0.43 2015-01-04 Released-By: PERLANCAR
- Second attempt to force C locale, by using IPC::System::Locale
[RT#101263].
0.42 2015-01-03 Released-By: PERLANCAR
- No functional changes.
- Pepper more LANG=C to force English output [RT#101263].
0.41 2015-01-03 Released-By: PERLANCAR
- No functional changes.
- Rebuild (Generate TODO.md).
0.40 2014-08-23 Released-By: SHARYANTO
- No functional changes.
- Typo, derp.
0.39 2014-08-23 Released-By: SHARYANTO
- No functional changes.
- Adjust to Perinci::CmdLine 1.19.
0.38 2014-07-18 Released-By: SHARYANTO
- Add option --repo to only process a single repo in the bunch and not
logging lots of skipped messages if we used --include-repos ONEREPO.
[REMOVED FEATURES]
- Remove option alias --repos for --include-repos because it's too
similar to the new --repo.
0.37 2014-06-21 Released-By: SHARYANTO
[ENHANCEMENTS]
- When doing sync, also touch .git/.commit-timestamp of dest repos, so
they will sync earlier too as sources.
0.36 2014-06-19 Released-By: SHARYANTO
[BUG FIXES]
- Fix sorting by commit-timestamp for sync_bunch() (cwd problem).
0.35 2014-06-02 Released-By: SHARYANTO
- Add new (and new default) sort order: -commit-timestamp. This lets
gitbunch process recently committed repos first. Can save some time if
you have many repos and want to interrupt the script in the middle.
0.34 2014-05-17 Released-By: SHARYANTO
- No functional changes.
- Replace File::Slurp with File::Slurp::Tiny.
0.33 2014-03-15 Released-By: SHARYANTO
- No functional changes. Rebuild to fix POD documentation (function
argument documentation was broken in Perinci-To-POD < 0.42).
0.32 2014-01-17 Released-By: SHARYANTO
- No functional changes. Add 'use experimental smartmatch' for Perl
5.18+.
0.31 2013-08-31 Released-By: SHARYANTO
- No functional changes.
- sync_bunch(): Show message if a non-git file/dir is updated in target.
0.30 2013-08-23 Released-By: SHARYANTO
[ENHANCEMENTS]
- sync_bunch(): Add option --backup.
0.29 2013-08-21 Released-By: SHARYANTO
[ENHANCEMENTS]
- sync_bunch(): Add option --create-bare. This replaces --use-bare (the
term 'create' is more apt here). Now allow creating non-bare git repos
via --nocreate-bare instead of just rsync-ing the source.
[REMOVED FEATURES]
- Remove backup_bunch (deprecated since v0.22).
0.28 2013-05-18 Released-By: SHARYANTO
- No functional changes. Reupload due to missing some code update.
0.27 2013-05-18 Released-By: SHARYANTO
- No functional changes. Update to Perinci::CmdLine 0.79 (Progress::Any
0.08).
0.26 2012-12-20 Released-By: SHARYANTO
- No functional changes. Tweak error message.
0.25 2012-11-20 Released-By: SHARYANTO
- No functional changes. Use progress indicator for 'sync_bunch'.
0.24 2012-10-24 Released-By: SHARYANTO
- No functional changes. Use progress indicator for 'sync_bunch'.
0.23 2012-07-24 Released-By: SHARYANTO
[BUG FIXES]
- Fix getting exit code from $?.
[DOCUMENTATION]
- Mention use cases for gitbunch, why/how I use it.
- Mention that gitbunch can handle non-repo dirs/files.
- Mention mr.
0.22 2012-07-04 Released-By: SHARYANTO
- Add `use_bare` option.
- Declare `backup_bunch` deprecated.
0.21 2012-04-16 Released-By: SHARYANTO
- Check: detect repo needs merging.
0.20 2012-04-10 Released-By: SHARYANTO
- No functional change. Small update to metadata.
0.19 2012-03-08 Released-By: SHARYANTO
- Small update to regex. Update to Perinci::CmdLine 0.40.
0.18 2012-03-03 Released-By: SHARYANTO
- Add 'cmdline.result_importance' => 'low' to result metadata, to suppress
verbose output.
0.17 2012-03-02 Released-By: SHARYANTO
- No functional changes. Replace Sub::Spec::CmdLine with Perinci::CmdLine.
0.16 2011-09-16 Released-By: SHARYANTO
[INCOMPATIBLE CHANGES]
- backup: Change default check from 1 to 0, to make backup more robust
(I often forgot to add --nocheck while having some repos uncommitted,
resulting in failure of backup).
0.15 2011-08-03 Released-By: SHARYANTO
- No functional changes. Add temporary dependencies to
Sub::Spec::GetArgs::Array 0.02 so that string arg_greedy arg works
(e.g. "gitbunch exec ~/repos -- ls -l -d" instead of "gitbunch exec
~/repos 'ls -l -d'".
0.14 2011-07-07 Released-By: SHARYANTO
[INCOMPATIBLE CHANGES]
- sync: By default now uses 'rsync -rlptD' (-a minus -go) instead of
'rsync -a' when copying repo to target. This is because -a is
problematic on sshfs-mounted filesystem. Old behaviour is available by
setting rsync_opt_maintain_ownership to 1.
0.13 2011-06-08 Released-By: SHARYANTO
[ENHANCEMENTS]
- Add --exclude-files and --exclude-non-git-dirs options.
[BUG FIXES]
- backup_bunch: Do not index excluded items.
0.12 2011-06-04 Released-By: SHARYANTO
- No functional changes.
[BUG FIXES]
- Fix spec for exec_bunch().
0.11 2011-06-04 Released-By: SHARYANTO
- No functional changes.
[BUG FIXES]
- Fix spec for exec_bunch().
0.10 2011-06-04 Released-By: SHARYANTO
[NEW FEATURES]
- New function: exec_bunch() ("gitbunch exec").
[ENHANCEMENTS]
- Add --exclude_repos_pat and --include_repos_pat options.
- Exclude/include repos options added to all functions.
0.09 2011-04-19 Released-By: SHARYANTO
- Add --exclude_repos to sync_bunch.
0.08 2011-03-04 Released-By: SHARYANTO
- Fix test when run as root.
0.07 2011-03-04 Released-By: SHARYANTO
- Sort repos in sorted order.
- Fix: pass extra_rsync_opts to rsync.
- Fix test (git co -> git checkout).
0.06 2011-02-28 Released-By: SHARYANTO
- Update to the latest Sub::Spec: 'depends' clause -> 'deps'. Add a few
dependency clauses (e.g. to 'git' and 'rsync' binary).
- For safety, bail out if given git repo dir instead of bunch dir as
source/target.
- Add tests.
0.05 2011-02-22 Released-By: SHARYANTO
- Update to the latest Sub::Spec (%SUBS -> %SPEC).
0.04 2011-02-16 Released-By: SHARYANTO
- Reduce startup overhead (avoid loading Log::Any::App) when invoked for
bash completion.
0.03 2011-02-16 Released-By: SHARYANTO
- Add missing dependency (File::chdir). [CT]
0.02 2011-02-15 Released-By: SHARYANTO
- Change log levels.
0.01 2011-02-15 Released-By: SHARYANTO
- First release.