@@ -1,5 +1,27 @@
Changes file for App-GitGot
+1.16 2014-07-23 16:19:42-07:00 America/Los_Angeles
+
+1.15 2014-05-08 21:19:33-07:00 America/Los_Angeles
+
+ * Fix stupid bugs because File::Slurp::Tiny does things _just_
+ slightly differently on some versions of Perl because we don't get
+ to have nice things ever.
+
+1.14 2014-05-08 18:06:22-07:00 America/Los_Angeles
+
+ * Move from File::Slurp to File::Slurp::Tiny (#25)
+
+1.13 2014-04-26 10:40:00-07:00 America/Los_Angeles
+
+ * __sigh__
+
+1.12 2014-04-22 20:54:41-07:00 America/Los_Angeles
+
+1.11 2014-04-22 18:53:24-07:00 America/Los_Angeles
+
+ * Add 'fetch' subcommand (Rolando Pereira)
+
1.10 2013-12-15 20:28:02 America/Los_Angeles
* Add 'that' subcommand; refactor 'this' (Mike Greb)
@@ -1,4 +1,4 @@
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@ b) the "Artistic License"
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2013 by John SJ Anderson.
+This software is Copyright (c) 2014 by John SJ Anderson.
This is free software, licensed under:
@@ -22,7 +22,7 @@ This is free software, licensed under:
Version 1, February 1989
Copyright (C) 1989 Free Software Foundation, Inc.
- 51 Franklin St, Suite 500, Boston, MA 02110-1335 USA
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -272,7 +272,7 @@ That's all there is to it!
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2013 by John SJ Anderson.
+This software is Copyright (c) 2014 by John SJ Anderson.
This is free software, licensed under:
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.019.
Changes
INSTALL
LICENSE
@@ -5,16 +6,15 @@ MANIFEST
META.json
META.yml
Makefile.PL
-README
-README.mkdn
+README.md
bin/got
bin/got-complete
-dist.ini
lib/App/GitGot.pm
lib/App/GitGot/Command.pm
lib/App/GitGot/Command/add.pm
lib/App/GitGot/Command/chdir.pm
lib/App/GitGot/Command/clone.pm
+lib/App/GitGot/Command/fetch.pm
lib/App/GitGot/Command/fork.pm
lib/App/GitGot/Command/gc.pm
lib/App/GitGot/Command/list.pm
@@ -33,7 +33,6 @@ lib/App/GitGot/Outputter/dark.pm
lib/App/GitGot/Outputter/light.pm
lib/App/GitGot/Repo.pm
lib/App/GitGot/Repo/Git.pm
-t/00-compile.t
t/01-run.t
t/02-add.t
t/03-chdir.t
@@ -45,10 +44,9 @@ t/08-status.t
t/09-update.t
t/10-gc.t
t/11-push.t
+t/12-fetch.t
t/lib/Test/App/GitGot/Repo.pm
t/lib/Test/App/GitGot/Repo/Git.pm
t/lib/Test/BASE.pm
-t/release-eol.t
-t/release-kwalitee.t
t/release-pod-coverage.t
t/release-pod-syntax.t
@@ -4,7 +4,7 @@
"John SJ Anderson <genehack@genehack.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.133380",
+ "generated_by" : "Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141520",
"license" : [
"perl_5"
],
@@ -22,7 +22,6 @@
"develop" : {
"requires" : {
"Pod::Coverage::TrustPod" : "0",
- "Test::Kwalitee" : "1.12",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08"
}
@@ -32,13 +31,14 @@
"IO::Page" : "0"
},
"requires" : {
+ "Class::Load" : "0",
"Config::INI::Reader" : "0",
"Cwd" : "0",
"Data::Dumper" : "0",
"File::Basename" : "0",
"File::Copy::Recursive" : "0",
"File::Path" : "2.08",
- "File::Slurp" : "0",
+ "File::Slurp::Tiny" : "0",
"File::Spec" : "0",
"FindBin" : "0",
"Git::Wrapper" : "0.014",
@@ -48,7 +48,6 @@
"MouseX::App::Cmd" : "0",
"MouseX::App::Cmd::Command" : "0",
"MouseX::NativeTraits" : "0",
- "Net::GitHub" : "0",
"Path::Class" : "0",
"Term::ANSIColor" : "0",
"Term::ReadLine" : "0",
@@ -63,16 +62,16 @@
"perl" : "5.010",
"strict" : "0",
"warnings" : "0"
+ },
+ "suggests" : {
+ "Net::GitHub" : "0"
}
},
"test" : {
"requires" : {
"App::Cmd::Tester" : "0",
"Carp" : "0",
- "File::Spec" : "0",
"File::Temp" : "0",
- "IO::Handle" : "0",
- "IPC::Open3" : "0",
"Test::Class" : "0",
"Test::Class::Load" : "0",
"Test::Exception" : "0",
@@ -85,141 +84,183 @@
"release_status" : "stable",
"resources" : {
"bugtracker" : {
- "mailto" : "bug-app-gitgot at rt.cpan.org",
- "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=App-GitGot"
+ "web" : "https://github.com/genehack/app-gitgot/issues"
},
- "homepage" : "http://search.cpan.org/dist/App-GitGot/",
+ "homepage" : "http://genehack.github.com/app-gitgot/",
"repository" : {
"type" : "git",
- "url" : "git://github.com/genehack/app-gitgot.git",
+ "url" : "https://github.com/genehack/app-gitgot.git",
"web" : "https://github.com/genehack/app-gitgot"
}
},
- "version" : "1.10",
+ "version" : "1.16",
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.018000"
+ "version" : "5.020000"
},
"plugins" : [
{
- "class" : "Dist::Zilla::Plugin::Git::Check",
- "name" : "@Filter/@Git/Check",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::Commit",
- "name" : "@Filter/@Git/Commit",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::Tag",
- "name" : "@Filter/@Git/Tag",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::Push",
- "name" : "@Filter/@Git/Push",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::NextVersion",
- "name" : "@Filter/Git::NextVersion",
- "version" : "2.019"
- },
- {
"class" : "Dist::Zilla::Plugin::GatherDir",
- "name" : "@Filter/@Basic/GatherDir",
- "version" : "5.006"
+ "name" : "GatherDir",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::PruneCruft",
- "name" : "@Filter/@Basic/PruneCruft",
- "version" : "5.006"
+ "name" : "@Filter/PruneCruft",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::ManifestSkip",
- "name" : "@Filter/@Basic/ManifestSkip",
- "version" : "5.006"
+ "name" : "@Filter/ManifestSkip",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
- "name" : "@Filter/@Basic/MetaYAML",
- "version" : "5.006"
+ "name" : "@Filter/MetaYAML",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::License",
- "name" : "@Filter/@Basic/License",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::Readme",
- "name" : "@Filter/@Basic/Readme",
- "version" : "5.006"
+ "name" : "@Filter/License",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::ExtraTests",
- "name" : "@Filter/@Basic/ExtraTests",
- "version" : "5.006"
+ "name" : "@Filter/ExtraTests",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
- "name" : "@Filter/@Basic/ExecDir",
- "version" : "5.006"
+ "name" : "@Filter/ExecDir",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::ShareDir",
- "name" : "@Filter/@Basic/ShareDir",
- "version" : "5.006"
+ "name" : "@Filter/ShareDir",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::MakeMaker",
- "name" : "@Filter/@Basic/MakeMaker",
- "version" : "5.006"
+ "config" : {
+ "Dist::Zilla::Role::TestRunner" : {
+ "default_jobs" : 1
+ }
+ },
+ "name" : "@Filter/MakeMaker",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
- "name" : "@Filter/@Basic/Manifest",
- "version" : "5.006"
+ "name" : "@Filter/Manifest",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
- "name" : "@Filter/@Basic/TestRelease",
- "version" : "5.006"
+ "name" : "@Filter/TestRelease",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
- "name" : "@Filter/@Basic/ConfirmRelease",
- "version" : "5.006"
+ "name" : "@Filter/ConfirmRelease",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
- "name" : "@Filter/@Basic/UploadToCPAN",
- "version" : "5.006"
+ "name" : "@Filter/UploadToCPAN",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::NextVersion",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::NextVersion" : {
+ "first_version" : "0.001",
+ "version_by_branch" : "0",
+ "version_regexp" : "(?^:^v(.+)$)"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "Git::NextVersion",
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
- "name" : "@Filter/AutoPrereqs",
- "version" : "5.006"
+ "name" : "AutoPrereqs",
+ "version" : "5.019"
},
{
- "class" : "Dist::Zilla::Plugin::CheckChangesHasContent",
- "name" : "@Filter/CheckChangesHasContent",
- "version" : "0.006"
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "runtime",
+ "type" : "requires"
+ }
+ },
+ "name" : "Prereqs",
+ "version" : "5.019"
},
{
- "class" : "Dist::Zilla::Plugin::Authority",
- "name" : "@Filter/Authority",
- "version" : "1.006"
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "runtime",
+ "type" : "recommends"
+ }
+ },
+ "name" : "RuntimeRecommends",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "runtime",
+ "type" : "suggests"
+ }
+ },
+ "name" : "RuntimeSuggests",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::GithubMeta",
+ "name" : "GithubMeta",
+ "version" : "0.46"
},
{
- "class" : "Dist::Zilla::Plugin::MinimumPerl",
- "name" : "@Filter/MinimumPerl",
- "version" : "1.003"
+ "class" : "Dist::Zilla::Plugin::InstallGuide",
+ "name" : "InstallGuide",
+ "version" : "1.200003"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaConfig",
+ "name" : "MetaConfig",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::MetaJSON",
+ "name" : "MetaJSON",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::NextRelease",
+ "name" : "NextRelease",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
- "name" : "@Filter/PkgVersion",
- "version" : "5.006"
+ "name" : "PkgVersion",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
+ "name" : "PodSyntaxTests",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::PodCoverageTests",
+ "name" : "PodCoverageTests",
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::PodWeaver",
@@ -233,256 +274,194 @@
{
"class" : "Pod::Weaver::Plugin::EnsurePod5",
"name" : "@CorePrep/EnsurePod5",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Plugin::H1Nester",
"name" : "@CorePrep/H1Nester",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Plugin::SingleEncoding",
"name" : "@Default/SingleEncoding",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Name",
"name" : "@Default/Name",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Version",
"name" : "@Default/Version",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Default/prelude",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "SYNOPSIS",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "DESCRIPTION",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Generic",
"name" : "OVERVIEW",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "ATTRIBUTES",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "METHODS",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Collect",
"name" : "FUNCTIONS",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Leftovers",
"name" : "@Default/Leftovers",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Region",
"name" : "@Default/postlude",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Authors",
"name" : "@Default/Authors",
- "version" : "4.004"
+ "version" : "4.006"
},
{
"class" : "Pod::Weaver::Section::Legal",
"name" : "@Default/Legal",
- "version" : "4.004"
+ "version" : "4.006"
}
]
}
},
- "name" : "@Filter/PodWeaver",
- "version" : "4.002"
+ "name" : "PodWeaver",
+ "version" : "4.005"
},
{
- "class" : "Dist::Zilla::Plugin::Bugtracker",
- "name" : "@Filter/Bugtracker",
- "version" : "1.111080"
- },
- {
- "class" : "Dist::Zilla::Plugin::Homepage",
- "name" : "@Filter/Homepage",
- "version" : "1.101420"
- },
- {
- "class" : "Dist::Zilla::Plugin::MetaConfig",
- "name" : "@Filter/MetaConfig",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::MetaJSON",
- "name" : "@Filter/MetaJSON",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::Repository",
- "name" : "@Filter/Repository",
- "version" : "0.19"
- },
- {
- "class" : "Dist::Zilla::Plugin::InstallGuide",
- "name" : "@Filter/InstallGuide",
- "version" : "1.200002"
- },
- {
- "class" : "Dist::Zilla::Plugin::ReadmeMarkdownFromPod",
- "name" : "@Filter/ReadmeMarkdownFromPod",
- "version" : "0.120120"
+ "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
+ "name" : "ReadmePodInRoot",
+ "version" : "0.141120"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromBuild",
- "name" : "@Filter/CopyFilesFromBuild",
+ "name" : "CopyFilesFromBuild",
"version" : "0.103510"
},
{
- "class" : "Dist::Zilla::Plugin::NextRelease",
- "name" : "@Filter/NextRelease",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::ExtraTests",
- "name" : "@Filter/ExtraTests",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::PodCoverageTests",
- "name" : "@Filter/PodCoverageTests",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
- "name" : "@Filter/PodSyntaxTests",
- "version" : "5.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::EOLTests",
- "name" : "@Filter/EOLTests",
- "version" : "0.02"
- },
- {
- "class" : "Dist::Zilla::Plugin::Test::Compile",
+ "class" : "Dist::Zilla::Plugin::Git::Tag",
"config" : {
- "Dist::Zilla::Plugin::Test::Compile" : {
- "filename" : "t/00-compile.t",
- "module_finder" : [
- ":InstallModules"
- ],
- "script_finder" : [
- ":ExecFiles"
- ]
+ "Dist::Zilla::Plugin::Git::Tag" : {
+ "branch" : null,
+ "signed" : 0,
+ "tag" : "v1.16",
+ "tag_format" : "v%v",
+ "tag_message" : "v%v",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
}
},
- "name" : "@Filter/Test::Compile",
- "version" : "2.039"
- },
- {
- "class" : "Dist::Zilla::Plugin::Twitter",
- "name" : "@Filter/Twitter",
- "version" : "0.024"
+ "name" : "Git::Tag",
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
- "name" : "@Filter/Git::Commit",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::Tag",
- "name" : "@Filter/Git::Tag",
- "version" : "2.019"
- },
- {
- "class" : "Dist::Zilla::Plugin::InstallRelease",
- "name" : "@Filter/InstallRelease",
- "version" : "0.008"
- },
- {
- "class" : "Dist::Zilla::Plugin::ArchiveRelease",
- "name" : "@Filter/ArchiveRelease",
- "version" : "4.00"
- },
- {
- "class" : "Dist::Zilla::Plugin::Prereqs",
"config" : {
- "Dist::Zilla::Plugin::Prereqs" : {
- "phase" : "runtime",
- "type" : "requires"
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [],
+ "commit_msg" : "v%v%n%n%c",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "dist.ini",
+ "Changes"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
}
},
- "name" : "Prereqs",
- "version" : "5.006"
+ "name" : "Git::Commit",
+ "version" : "2.023"
},
{
- "class" : "Dist::Zilla::Plugin::Prereqs",
- "config" : {
- "Dist::Zilla::Plugin::Prereqs" : {
- "phase" : "runtime",
- "type" : "recommends"
- }
- },
- "name" : "RuntimeRecommends",
- "version" : "5.006"
+ "class" : "Dist::Zilla::Plugin::Twitter",
+ "name" : "Twitter",
+ "version" : "0.025"
},
{
- "class" : "Dist::Zilla::Plugin::PruneFiles",
- "name" : "PruneFiles",
- "version" : "5.006"
+ "class" : "Dist::Zilla::Plugin::Run::BeforeBuild",
+ "name" : "Run::BeforeBuild",
+ "version" : "0.021"
},
{
- "class" : "Dist::Zilla::Plugin::Test::Kwalitee",
- "name" : "Test::Kwalitee",
- "version" : "2.07"
+ "class" : "Dist::Zilla::Plugin::Run::AfterBuild",
+ "name" : "Run::AfterBuild",
+ "version" : "0.021"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "5.006"
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "5.006"
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "5.006"
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "5.006"
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "5.006"
+ "version" : "5.019"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "5.006"
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":AllFiles",
+ "version" : "5.019"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FinderCode",
+ "name" : ":NoFiles",
+ "version" : "5.019"
}
],
"zilla" : {
@@ -490,9 +469,8 @@
"config" : {
"is_trial" : "0"
},
- "version" : "5.006"
+ "version" : "5.019"
}
- },
- "x_authority" : "cpan:GENEHACK"
+ }
}
@@ -3,166 +3,193 @@ abstract: 'A tool to make it easier to manage multiple code repositories using d
author:
- 'John SJ Anderson <genehack@genehack.org>'
build_requires:
- App::Cmd::Tester: 0
- Carp: 0
- File::Spec: 0
- File::Temp: 0
- IO::Handle: 0
- IPC::Open3: 0
- Test::Class: 0
- Test::Class::Load: 0
- Test::Exception: 0
- Test::File: 0
- Test::More: 0
- parent: 0
+ App::Cmd::Tester: '0'
+ Carp: '0'
+ File::Temp: '0'
+ Test::Class: '0'
+ Test::Class::Load: '0'
+ Test::Exception: '0'
+ Test::File: '0'
+ Test::More: '0'
+ parent: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.133380'
+generated_by: 'Dist::Zilla version 5.019, CPAN::Meta::Converter version 2.141520'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: App-GitGot
recommends:
- IO::Page: 0
+ IO::Page: '0'
requires:
- Config::INI::Reader: 0
- Cwd: 0
- Data::Dumper: 0
- File::Basename: 0
- File::Copy::Recursive: 0
- File::Path: 2.08
- File::Slurp: 0
- File::Spec: 0
- FindBin: 0
- Git::Wrapper: 0.014
- List::MoreUtils: 0
- List::Util: 0
- Mouse: 0
- MouseX::App::Cmd: 0
- MouseX::App::Cmd::Command: 0
- MouseX::NativeTraits: 0
- Net::GitHub: 0
- Path::Class: 0
- Term::ANSIColor: 0
- Term::ReadLine: 0
- Term::ReadLine::Perl: 0
- Test::MockObject: 0
- Try::Tiny: 0
- YAML: 0
- YAML::Any: 0
- autodie: 0
- lib: 0
- namespace::autoclean: 0
- perl: 5.010
- strict: 0
- warnings: 0
+ Class::Load: '0'
+ Config::INI::Reader: '0'
+ Cwd: '0'
+ Data::Dumper: '0'
+ File::Basename: '0'
+ File::Copy::Recursive: '0'
+ File::Path: '2.08'
+ File::Slurp::Tiny: '0'
+ File::Spec: '0'
+ FindBin: '0'
+ Git::Wrapper: '0.014'
+ List::MoreUtils: '0'
+ List::Util: '0'
+ Mouse: '0'
+ MouseX::App::Cmd: '0'
+ MouseX::App::Cmd::Command: '0'
+ MouseX::NativeTraits: '0'
+ Path::Class: '0'
+ Term::ANSIColor: '0'
+ Term::ReadLine: '0'
+ Term::ReadLine::Perl: '0'
+ Test::MockObject: '0'
+ Try::Tiny: '0'
+ YAML: '0'
+ YAML::Any: '0'
+ autodie: '0'
+ lib: '0'
+ namespace::autoclean: '0'
+ perl: '5.010'
+ strict: '0'
+ warnings: '0'
resources:
- bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=App-GitGot
- homepage: http://search.cpan.org/dist/App-GitGot/
- repository: git://github.com/genehack/app-gitgot.git
-version: 1.10
+ bugtracker: https://github.com/genehack/app-gitgot/issues
+ homepage: http://genehack.github.com/app-gitgot/
+ repository: https://github.com/genehack/app-gitgot.git
+version: '1.16'
x_Dist_Zilla:
perl:
- version: 5.018000
+ version: '5.020000'
plugins:
-
- class: Dist::Zilla::Plugin::Git::Check
- name: '@Filter/@Git/Check'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::Git::Commit
- name: '@Filter/@Git/Commit'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::Git::Tag
- name: '@Filter/@Git/Tag'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::Git::Push
- name: '@Filter/@Git/Push'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::Git::NextVersion
- name: '@Filter/Git::NextVersion'
- version: 2.019
- -
class: Dist::Zilla::Plugin::GatherDir
- name: '@Filter/@Basic/GatherDir'
- version: 5.006
+ name: GatherDir
+ version: '5.019'
-
class: Dist::Zilla::Plugin::PruneCruft
- name: '@Filter/@Basic/PruneCruft'
- version: 5.006
+ name: '@Filter/PruneCruft'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::ManifestSkip
- name: '@Filter/@Basic/ManifestSkip'
- version: 5.006
+ name: '@Filter/ManifestSkip'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::MetaYAML
- name: '@Filter/@Basic/MetaYAML'
- version: 5.006
+ name: '@Filter/MetaYAML'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::License
- name: '@Filter/@Basic/License'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::Readme
- name: '@Filter/@Basic/Readme'
- version: 5.006
+ name: '@Filter/License'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::ExtraTests
- name: '@Filter/@Basic/ExtraTests'
- version: 5.006
+ name: '@Filter/ExtraTests'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::ExecDir
- name: '@Filter/@Basic/ExecDir'
- version: 5.006
+ name: '@Filter/ExecDir'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::ShareDir
- name: '@Filter/@Basic/ShareDir'
- version: 5.006
+ name: '@Filter/ShareDir'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::MakeMaker
- name: '@Filter/@Basic/MakeMaker'
- version: 5.006
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 1
+ name: '@Filter/MakeMaker'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::Manifest
- name: '@Filter/@Basic/Manifest'
- version: 5.006
+ name: '@Filter/Manifest'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::TestRelease
- name: '@Filter/@Basic/TestRelease'
- version: 5.006
+ name: '@Filter/TestRelease'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::ConfirmRelease
- name: '@Filter/@Basic/ConfirmRelease'
- version: 5.006
+ name: '@Filter/ConfirmRelease'
+ version: '5.019'
-
class: Dist::Zilla::Plugin::UploadToCPAN
- name: '@Filter/@Basic/UploadToCPAN'
- version: 5.006
+ name: '@Filter/UploadToCPAN'
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::Git::NextVersion
+ config:
+ Dist::Zilla::Plugin::Git::NextVersion:
+ first_version: '0.001'
+ version_by_branch: '0'
+ version_regexp: (?^:^v(.+)$)
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: Git::NextVersion
+ version: '2.023'
-
class: Dist::Zilla::Plugin::AutoPrereqs
- name: '@Filter/AutoPrereqs'
- version: 5.006
+ name: AutoPrereqs
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: runtime
+ type: requires
+ name: Prereqs
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: runtime
+ type: recommends
+ name: RuntimeRecommends
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: runtime
+ type: suggests
+ name: RuntimeSuggests
+ version: '5.019'
-
- class: Dist::Zilla::Plugin::CheckChangesHasContent
- name: '@Filter/CheckChangesHasContent'
- version: 0.006
+ class: Dist::Zilla::Plugin::GithubMeta
+ name: GithubMeta
+ version: '0.46'
-
- class: Dist::Zilla::Plugin::Authority
- name: '@Filter/Authority'
- version: 1.006
+ class: Dist::Zilla::Plugin::InstallGuide
+ name: InstallGuide
+ version: '1.200003'
+ -
+ class: Dist::Zilla::Plugin::MetaConfig
+ name: MetaConfig
+ version: '5.019'
-
- class: Dist::Zilla::Plugin::MinimumPerl
- name: '@Filter/MinimumPerl'
- version: 1.003
+ class: Dist::Zilla::Plugin::MetaJSON
+ name: MetaJSON
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::NextRelease
+ name: NextRelease
+ version: '5.019'
-
class: Dist::Zilla::Plugin::PkgVersion
- name: '@Filter/PkgVersion'
- version: 5.006
+ name: PkgVersion
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::PodSyntaxTests
+ name: PodSyntaxTests
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::PodCoverageTests
+ name: PodCoverageTests
+ version: '5.019'
-
class: Dist::Zilla::Plugin::PodWeaver
config:
@@ -174,203 +201,154 @@ x_Dist_Zilla:
-
class: Pod::Weaver::Plugin::EnsurePod5
name: '@CorePrep/EnsurePod5'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Plugin::H1Nester
name: '@CorePrep/H1Nester'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Plugin::SingleEncoding
name: '@Default/SingleEncoding'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Name
name: '@Default/Name'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Version
name: '@Default/Version'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Region
name: '@Default/prelude'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Generic
name: SYNOPSIS
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Generic
name: DESCRIPTION
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Generic
name: OVERVIEW
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Collect
name: ATTRIBUTES
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Collect
name: METHODS
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Collect
name: FUNCTIONS
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Leftovers
name: '@Default/Leftovers'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Region
name: '@Default/postlude'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Authors
name: '@Default/Authors'
- version: 4.004
+ version: '4.006'
-
class: Pod::Weaver::Section::Legal
name: '@Default/Legal'
- version: 4.004
- name: '@Filter/PodWeaver'
- version: 4.002
- -
- class: Dist::Zilla::Plugin::Bugtracker
- name: '@Filter/Bugtracker'
- version: 1.111080
+ version: '4.006'
+ name: PodWeaver
+ version: '4.005'
-
- class: Dist::Zilla::Plugin::Homepage
- name: '@Filter/Homepage'
- version: 1.101420
- -
- class: Dist::Zilla::Plugin::MetaConfig
- name: '@Filter/MetaConfig'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::MetaJSON
- name: '@Filter/MetaJSON'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::Repository
- name: '@Filter/Repository'
- version: 0.19
- -
- class: Dist::Zilla::Plugin::InstallGuide
- name: '@Filter/InstallGuide'
- version: 1.200002
- -
- class: Dist::Zilla::Plugin::ReadmeMarkdownFromPod
- name: '@Filter/ReadmeMarkdownFromPod'
- version: 0.120120
+ class: Dist::Zilla::Plugin::ReadmeAnyFromPod
+ name: ReadmePodInRoot
+ version: '0.141120'
-
class: Dist::Zilla::Plugin::CopyFilesFromBuild
- name: '@Filter/CopyFilesFromBuild'
- version: 0.103510
- -
- class: Dist::Zilla::Plugin::NextRelease
- name: '@Filter/NextRelease'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::ExtraTests
- name: '@Filter/ExtraTests'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::PodCoverageTests
- name: '@Filter/PodCoverageTests'
- version: 5.006
- -
- class: Dist::Zilla::Plugin::PodSyntaxTests
- name: '@Filter/PodSyntaxTests'
- version: 5.006
+ name: CopyFilesFromBuild
+ version: '0.103510'
-
- class: Dist::Zilla::Plugin::EOLTests
- name: '@Filter/EOLTests'
- version: 0.02
- -
- class: Dist::Zilla::Plugin::Test::Compile
+ class: Dist::Zilla::Plugin::Git::Tag
config:
- Dist::Zilla::Plugin::Test::Compile:
- filename: t/00-compile.t
- module_finder:
- - ':InstallModules'
- script_finder:
- - ':ExecFiles'
- name: '@Filter/Test::Compile'
- version: 2.039
- -
- class: Dist::Zilla::Plugin::Twitter
- name: '@Filter/Twitter'
- version: 0.024
+ Dist::Zilla::Plugin::Git::Tag:
+ branch: ~
+ signed: 0
+ tag: v1.16
+ tag_format: v%v
+ tag_message: v%v
+ time_zone: local
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: Git::Tag
+ version: '2.023'
-
class: Dist::Zilla::Plugin::Git::Commit
- name: '@Filter/Git::Commit'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::Git::Tag
- name: '@Filter/Git::Tag'
- version: 2.019
- -
- class: Dist::Zilla::Plugin::InstallRelease
- name: '@Filter/InstallRelease'
- version: 0.008
- -
- class: Dist::Zilla::Plugin::ArchiveRelease
- name: '@Filter/ArchiveRelease'
- version: 4.00
- -
- class: Dist::Zilla::Plugin::Prereqs
config:
- Dist::Zilla::Plugin::Prereqs:
- phase: runtime
- type: requires
- name: Prereqs
- version: 5.006
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in: []
+ commit_msg: v%v%n%n%c
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - dist.ini
+ - Changes
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: Git::Commit
+ version: '2.023'
-
- class: Dist::Zilla::Plugin::Prereqs
- config:
- Dist::Zilla::Plugin::Prereqs:
- phase: runtime
- type: recommends
- name: RuntimeRecommends
- version: 5.006
+ class: Dist::Zilla::Plugin::Twitter
+ name: Twitter
+ version: '0.025'
-
- class: Dist::Zilla::Plugin::PruneFiles
- name: PruneFiles
- version: 5.006
+ class: Dist::Zilla::Plugin::Run::BeforeBuild
+ name: Run::BeforeBuild
+ version: '0.021'
-
- class: Dist::Zilla::Plugin::Test::Kwalitee
- name: Test::Kwalitee
- version: 2.07
+ class: Dist::Zilla::Plugin::Run::AfterBuild
+ name: Run::AfterBuild
+ version: '0.021'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: 5.006
+ version: '5.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: 5.006
+ version: '5.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: 5.006
+ version: '5.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: 5.006
+ version: '5.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: 5.006
+ version: '5.019'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: 5.006
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':AllFiles'
+ version: '5.019'
+ -
+ class: Dist::Zilla::Plugin::FinderCode
+ name: ':NoFiles'
+ version: '5.019'
zilla:
class: Dist::Zilla::Dist::Builder
config:
- is_trial: 0
- version: 5.006
-x_authority: cpan:GENEHACK
+ is_trial: '0'
+ version: '5.019'
@@ -1,4 +1,5 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.019.
use strict;
use warnings;
@@ -11,7 +12,6 @@ use ExtUtils::MakeMaker 6.30;
my %WriteMakefileArgs = (
"ABSTRACT" => "A tool to make it easier to manage multiple code repositories using different VCSen",
"AUTHOR" => "John SJ Anderson <genehack\@genehack.org>",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
"ExtUtils::MakeMaker" => "6.30"
},
@@ -23,13 +23,14 @@ my %WriteMakefileArgs = (
"LICENSE" => "perl",
"NAME" => "App::GitGot",
"PREREQ_PM" => {
+ "Class::Load" => 0,
"Config::INI::Reader" => 0,
"Cwd" => 0,
"Data::Dumper" => 0,
"File::Basename" => 0,
"File::Copy::Recursive" => 0,
"File::Path" => "2.08",
- "File::Slurp" => 0,
+ "File::Slurp::Tiny" => 0,
"File::Spec" => 0,
"FindBin" => 0,
"Git::Wrapper" => "0.014",
@@ -39,7 +40,6 @@ my %WriteMakefileArgs = (
"MouseX::App::Cmd" => 0,
"MouseX::App::Cmd::Command" => 0,
"MouseX::NativeTraits" => 0,
- "Net::GitHub" => 0,
"Path::Class" => 0,
"Term::ANSIColor" => 0,
"Term::ReadLine" => 0,
@@ -57,10 +57,7 @@ my %WriteMakefileArgs = (
"TEST_REQUIRES" => {
"App::Cmd::Tester" => 0,
"Carp" => 0,
- "File::Spec" => 0,
"File::Temp" => 0,
- "IO::Handle" => 0,
- "IPC::Open3" => 0,
"Test::Class" => 0,
"Test::Class::Load" => 0,
"Test::Exception" => 0,
@@ -68,7 +65,7 @@ my %WriteMakefileArgs = (
"Test::More" => 0,
"parent" => 0
},
- "VERSION" => "1.10",
+ "VERSION" => "1.16",
"test" => {
"TESTS" => "t/*.t"
}
@@ -78,26 +75,24 @@ my %WriteMakefileArgs = (
my %FallbackPrereqs = (
"App::Cmd::Tester" => 0,
"Carp" => 0,
+ "Class::Load" => 0,
"Config::INI::Reader" => 0,
"Cwd" => 0,
"Data::Dumper" => 0,
"File::Basename" => 0,
"File::Copy::Recursive" => 0,
"File::Path" => "2.08",
- "File::Slurp" => 0,
+ "File::Slurp::Tiny" => 0,
"File::Spec" => 0,
"File::Temp" => 0,
"FindBin" => 0,
"Git::Wrapper" => "0.014",
- "IO::Handle" => 0,
- "IPC::Open3" => 0,
"List::MoreUtils" => 0,
"List::Util" => 0,
"Mouse" => 0,
"MouseX::App::Cmd" => 0,
"MouseX::App::Cmd::Command" => 0,
"MouseX::NativeTraits" => 0,
- "Net::GitHub" => 0,
"Path::Class" => 0,
"Term::ANSIColor" => 0,
"Term::ReadLine" => 0,
@@ -1,13 +0,0 @@
-
-
-This archive contains the distribution App-GitGot,
-version 1.10:
-
- A tool to make it easier to manage multiple code repositories using different VCSen
-
-This software is copyright (c) 2013 by John SJ Anderson.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-
@@ -0,0 +1,196 @@
+# NAME
+
+got - A tool to make it easier to manage multiple code repositories using different VCSen
+
+# VERSION
+
+version 1.16
+
+# SYNOPSIS
+
+ cd some/proj/in/a/vcs
+
+ got add
+ # answer prompts for various information
+ # or run with '-D' to take all defaults
+
+ # show managed repositories
+ got list
+ got ls
+
+ # show managed repositories sorted by path (default = sort by name)
+ got ls -p
+
+ # remove repo #1 from the list
+ got remove 1
+
+ # remove repo named 'bar' from the list
+ got remove bar
+
+ # remove all repos tagged 'foo' without confirmation prompts
+ got rm -f -t foo
+
+ # remove repo #3 without confirmation prompts and be noisy about it
+ got rm -f -v 3
+
+ # show status (up-to-date, dirty, etc.) for all repos
+ got status
+
+ # show status for repo #3
+ got st 3
+
+ # update all repos with configured remotes
+ got update
+
+ # update repo named 'bar'
+ got up bar
+
+ # Note: if a repo is in the list but doesn't have a local checkout, 'got
+ # update' will create directories as needed and do the initial check out.
+
+ # spawn a subshell with working directory set to 'path' of repo #1
+ got chdir 1
+
+ # spawn a subshell with working directory set to 'path' of repo foo
+ got cd foo
+
+ # or use 'tmux' subcommand to open a new tmux window instead
+ got tmux 1
+ got tmux foo
+ # N.b., 'tmux' will reuse an existing window if one is open
+
+ # fork a github repo, add it to your list of repos, and check it out in
+ # the current working directory
+ got fork https://github.com/somebodies/repo_name
+
+ # note: the default path to a repo added via 'fork' is a directory
+ # named 'repo_name' in the current working directory
+
+ # if you just want to fork without checking out a working copy:
+ got fork --noclone https://github.com/somebodies/repo_name
+
+ # finally, please note that you need a C<~/.github-identity> file set up
+ # with your access token or your username and password in the following key-value
+ # format:
+ user username
+ pass password
+
+ # *OR*
+ access_token token
+
+ # note that if you specify both, the access_token value will be used
+
+ # show version of got
+ got version
+
+# DESCRIPTION
+
+`got` is a script to make it easier to manage all the version controlled
+repositories you have on all the computers you use. It can operate on all,
+some, or just one repo at a time, to both check the status of the repo (up to
+date, pending changes, dirty, etc.) and sync it with any upstream master.
+
+got also supports forking a GitHub repo and adding it to the list of managed
+repositories.
+
+# OPTIONS
+
+In addition to the subcommand-specific options illustrated in the SYNOPSIS,
+all the subcommands accept the following options:
+
+- `--verbose / -v`
+
+ Be more verbose about what is happening behind the scenes
+
+- `--quiet / -q`
+
+ Be more quiet
+
+- `--tags / -t`
+
+ Select all repositories that have the given tag. May be given multiple
+ times. Multiple args are (effectively) 'and'-ed together.
+
+- `--skip-tags / -T`
+
+ Skip all repositories that have the given tag. May be given multiple
+ times. Multiple args are (effectively) 'or'-ed together. May be combined with
+ \-t to select all repos with the -t tag except for those with the -T tag.
+
+- `--no-color / -C`
+
+ Suppress colored output
+
+- `--color-scheme / -c`
+
+ Specify a color scheme. Defaults to 'dark'. People using light backgrounds may
+ want to specify "-c light".
+
+ The name given to the option indicates a library to load. By default this
+ library is assumed to be in the 'App::GitGot::Outputter::' namespace; the
+ given scheme name will be appended to that namespace. You can load something
+ from a different namespace by prefacing a '+'. (E.g., '-C +GitGot::pink' will
+ attempt to load 'GitGot::pink'.)
+
+ If the requested module can't be loaded, the command will exit.
+
+ See COLOR SCHEMES for details on how to write your own custom color scheme.
+
+- repo name, repo number, range
+
+ Commands may be limited to a subset of repositories by giving a combination of
+ additional arguments, consisting of either repository names, repository
+ numbers (as reported by the '`list`' subcommand), or number ranges (e.g., `2-4`
+ will operate on repository numbers 2, 3, and 4).
+
+ Note that if you have a repository whose name is an integer number, bad things
+ are going probably going to happen. Don't do that.
+
+# COLOR SCHEMES
+
+Color scheme libraries should extend `App::GitGot::Outputter` and need to
+define four required attributes: `color_error`, `color_warning`,
+`color_major_change`, and `color_minor_change`. Each attribute should be a
+read-only of type 'Str' with a default value that corresponds to a valid
+`Term::ANSIColor` color string.
+
+# SEE ALSO/CREDITS
+
+- [http://github.com/ingydotnet/app-aycabtu-pm/](http://github.com/ingydotnet/app-aycabtu-pm/)
+
+ Seeing Ingy döt Net speak about AYCABTU at PPW2010 was a major factor in the
+ development of this script -- earlier (unreleased) versions did not have any way
+ to limit operations to a subset of managed repositories; they also didn't deal
+ well managing output. After lifting his interface (virtually wholesale) I
+ ended up with something that I thought was worth releasing.
+
+- [http://www.leancrew.com/all-this/2010/12/batch-comparison-of-git-repositories/](http://www.leancrew.com/all-this/2010/12/batch-comparison-of-git-repositories/)
+
+ drdrang prodded me about making the color configuration more friendly to those
+ that weren't dark backrgound terminal people. The colors in
+ `App::GitGot::Outputter::light` are based on a couple of patches that drdrang
+ sent me.
+
+- [The Wire](http://en.wikipedia.org/wiki/The_Wire)
+
+# LIMITATIONS
+
+Currently git is the only supported VCS.
+
+# CONTRIBUTORS
+
+- Yanick Champoux <yanick@babyl.dyndns.org>
+- Michael Greb <michael@thegrebs.com>
+- Chris Prather <chris@prather.org>
+- Rolando Pereira
+
+# AUTHOR
+
+John SJ Anderson <genehack@genehack.org>
+
+# COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2014 by John SJ Anderson.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
@@ -1,195 +0,0 @@
-# NAME
-
-got - A tool to make it easier to manage multiple code repositories using different VCSen
-
-# VERSION
-
-version 1.10
-
-# SYNOPSIS
-
- cd some/proj/in/a/vcs
-
- got add
- # answer prompts for various information
- # or run with '-D' to take all defaults
-
- # show managed repositories
- got list
- got ls
-
- # show managed repositories sorted by path (default = sort by name)
- got ls -p
-
- # remove repo #1 from the list
- got remove 1
-
- # remove repo named 'bar' from the list
- got remove bar
-
- # remove all repos tagged 'foo' without confirmation prompts
- got rm -f -t foo
-
- # remove repo #3 without confirmation prompts and be noisy about it
- got rm -f -v 3
-
- # show status (up-to-date, dirty, etc.) for all repos
- got status
-
- # show status for repo #3
- got st 3
-
- # update all repos with configured remotes
- got update
-
- # update repo named 'bar'
- got up bar
-
- # Note: if a repo is in the list but doesn't have a local checkout, 'got
- # update' will create directories as needed and do the initial check out.
-
- # spawn a subshell with working directory set to 'path' of repo #1
- got chdir 1
-
- # spawn a subshell with working directory set to 'path' of repo foo
- got cd foo
-
- # or use 'tmux' subcommand to open a new tmux window instead
- got tmux 1
- got tmux foo
- # N.b., 'tmux' will reuse an existing window if one is open
-
- # fork a github repo, add it to your list of repos, and check it out in
- # the current working directory
- got fork https://github.com/somebodies/repo_name
-
- # note: the default path to a repo added via 'fork' is a directory
- # named 'repo_name' in the current working directory
-
- # if you just want to fork without checking out a working copy:
- got fork --noclone https://github.com/somebodies/repo_name
-
- # finally, please note that you need a C<~/.github-identity> file set up
- # with your access token or your username and password in the following key-value
- # format:
- user username
- pass password
-
- # *OR*
- access_token token
-
- # note that if you specify both, the access_token value will be used
-
- # show version of got
- got version
-
-# DESCRIPTION
-
-`got` is a script to make it easier to manage all the version controlled
-repositories you have on all the computers you use. It can operate on all,
-some, or just one repo at a time, to both check the status of the repo (up to
-date, pending changes, dirty, etc.) and sync it with any upstream master.
-
-got also supports forking a GitHub repo and adding it to the list of managed
-repositories.
-
-# OPTIONS
-
-In addition to the subcommand-specific options illustrated in the SYNOPSIS,
-all the subcommands accept the following options:
-
-- `--verbose / -v`
-
- Be more verbose about what is happening behind the scenes
-
-- `--quiet / -q`
-
- Be more quiet
-
-- `--tags / -t`
-
- Select all repositories that have the given tag. May be given multiple
- times. Multiple args are (effectively) 'and'-ed together.
-
-- `--skip-tags / -T`
-
- Skip all repositories that have the given tag. May be given multiple
- times. Multiple args are (effectively) 'or'-ed together. May be combined with
- \-t to select all repos with the -t tag except for those with the -T tag.
-
-- `--no-color / -C`
-
- Suppress colored output
-
-- `--color-scheme / -c`
-
- Specify a color scheme. Defaults to 'dark'. People using light backgrounds may
- want to specify "-c light".
-
- The name given to the option indicates a library to load. By default this
- library is assumed to be in the 'App::GitGot::Outputter::' namespace; the
- given scheme name will be appended to that namespace. You can load something
- from a different namespace by prefacing a '+'. (E.g., '-C +GitGot::pink' will
- attempt to load 'GitGot::pink'.)
-
- If the requested module can't be loaded, the command will exit.
-
- See COLOR SCHEMES for details on how to write your own custom color scheme.
-
-- repo name, repo number, range
-
- Commands may be limited to a subset of repositories by giving a combination of
- additional arguments, consisting of either repository names, repository
- numbers (as reported by the '`list`' subcommand), or number ranges (e.g., `2-4`
- will operate on repository numbers 2, 3, and 4).
-
- Note that if you have a repository whose name is an integer number, bad things
- are going probably going to happen. Don't do that.
-
-# COLOR SCHEMES
-
-Color scheme libraries should extend `App::GitGot::Outputter` and need to
-define four required attributes: `color_error`, `color_warning`,
-`color_major_change`, and `color_minor_change`. Each attribute should be a
-read-only of type 'Str' with a default value that corresponds to a valid
-`Term::ANSIColor` color string.
-
-# SEE ALSO/CREDITS
-
-- [http://github.com/ingydotnet/app-aycabtu-pm/](http://github.com/ingydotnet/app-aycabtu-pm/)
-
- Seeing Ingy döt Net speak about AYCABTU at PPW2010 was a major factor in the
- development of this script -- earlier (unreleased) versions did not have any way
- to limit operations to a subset of managed repositories; they also didn't deal
- well managing output. After lifting his interface (virtually wholesale) I
- ended up with something that I thought was worth releasing.
-
-- [http://www.leancrew.com/all-this/2010/12/batch-comparison-of-git-repositories/](http://www.leancrew.com/all-this/2010/12/batch-comparison-of-git-repositories/)
-
- drdrang prodded me about making the color configuration more friendly to those
- that weren't dark backrgound terminal people. The colors in
- `App::GitGot::Outputter::light` are based on a couple of patches that drdrang
- sent me.
-
-- [The Wire](http://en.wikipedia.org/wiki/The_Wire)
-
-# LIMITATIONS
-
-Currently git is the only supported VCS.
-
-# CONTRIBUTORS
-
-- Yanick Champoux <yanick@babyl.dyndns.org>
-- Michael Greb <michael@thegrebs.com>
-- Chris Prather <chris@prather.org>
-
-# AUTHOR
-
-John SJ Anderson <genehack@genehack.org>
-
-# COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2013 by John SJ Anderson.
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
@@ -24,7 +24,7 @@ got - A tool to make it easier to manage multiple code repositories using differ
=head1 VERSION
-version 1.10
+version 1.16
=head1 SYNOPSIS
@@ -215,6 +215,8 @@ Currently git is the only supported VCS.
=item Chris Prather <chris@prather.org>
+=item Rolando Pereira
+
=back
=head1 AUTHOR
@@ -223,7 +225,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -51,7 +51,7 @@ got-complete - shell completion helper for got
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -59,7 +59,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,24 +0,0 @@
-name = App-GitGot
-author = John SJ Anderson <genehack@genehack.org>
-license = Perl_5
-copyright_holder = John SJ Anderson
-copyright_year = 2013
-main_module = bin/got
-
-[@Filter]
--bundle = @GENEHACK
--remove = Test::Kwalitee
-
-[Prereqs]
-Git::Wrapper = 0.014
-MouseX::NativeTraits = 0
-Term::ReadLine::Perl = 0
-
-[Prereqs / RuntimeRecommends]
-IO::Page = 0
-
-[PruneFiles]
-match = ^extlib/*
-
-[Test::Kwalitee]
-skiptest=use_strict ; Don't test for strictness.
@@ -1,12 +1,6 @@
package App::GitGot::Command::add;
-{
- $App::GitGot::Command::add::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::add::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: add a new repo to your config
-
+$App::GitGot::Command::add::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -131,7 +125,7 @@ App::GitGot::Command::add - add a new repo to your config
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -139,7 +133,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::chdir;
-{
- $App::GitGot::Command::chdir::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::chdir::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: open a subshell in a selected project
-
+$App::GitGot::Command::chdir::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -44,7 +38,7 @@ App::GitGot::Command::chdir - open a subshell in a selected project
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -52,7 +46,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::clone;
-{
- $App::GitGot::Command::clone::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::clone::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: clone a remote repo and add it to your config
-
+$App::GitGot::Command::clone::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -78,7 +72,7 @@ App::GitGot::Command::clone - clone a remote repo and add it to your config
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -86,7 +80,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -0,0 +1,44 @@
+package App::GitGot::Command::fetch;
+# ABSTRACT: fetch remotes for managed repositories
+$App::GitGot::Command::fetch::VERSION = '1.16';
+use Mouse;
+extends 'App::GitGot::Command';
+use 5.010;
+
+sub command_names { qw/ fetch / }
+
+sub _execute {
+ my ( $self, $opt, $args ) = @_;
+
+ $self->_fetch( $self->active_repos );
+}
+
+__PACKAGE__->meta->make_immutable;
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+App::GitGot::Command::fetch - fetch remotes for managed repositories
+
+=head1 VERSION
+
+version 1.16
+
+=head1 AUTHOR
+
+John SJ Anderson <genehack@genehack.org>
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2014 by John SJ Anderson.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
@@ -1,21 +1,15 @@
package App::GitGot::Command::fork;
-{
- $App::GitGot::Command::fork::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::fork::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: fork a github repo
-
+$App::GitGot::Command::fork::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
use autodie;
use App::GitGot::Repo::Git;
+use Class::Load 'try_load_class';
use Cwd;
-use File::Slurp;
-use Net::GitHub;
+use File::Slurp::Tiny 'read_lines';
has 'noclone' => (
is => 'rw',
@@ -27,6 +21,10 @@ has 'noclone' => (
sub _execute {
my( $self, $opt, $args ) = @_;
+ try_load_class('Net::GitHub') or
+ say "Sorry, Net::GitHub is required for 'got fork'. Please install it."
+ and exit(1);
+
my $github_url = shift @$args
or say STDERR "ERROR: Need the URL of a repo to fork!" and exit(1);
@@ -56,9 +54,15 @@ sub _parse_github_identity {
-e $file or
say STDERR "ERROR: Can't find $ENV{HOME}/.github-identity" and exit(1);
- my @lines = read_file( $file );
+ my @lines = read_lines( $file );
- my %config = map { my( @x ) = split /\s/; { $x[0] => $x[1] } } @lines;
+ my %config;
+ foreach ( @lines ) {
+ chomp;
+ next unless $_;
+ my( $k , $v ) = split /\s/;
+ $config{$k} = $v;
+ }
if ( defined $config{access_token} ) {
return ( access_token => $config{access_token} )
@@ -96,7 +100,7 @@ App::GitGot::Command::fork - fork a github repo
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -104,7 +108,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::gc;
-{
- $App::GitGot::Command::gc::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::gc::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Run the 'gc' command to garbage collect in git repos
-
+$App::GitGot::Command::gc::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -53,7 +47,7 @@ App::GitGot::Command::gc - Run the 'gc' command to garbage collect in git repos
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -61,7 +55,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::list;
-{
- $App::GitGot::Command::list::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::list::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: list managed repositories
-
+$App::GitGot::Command::list::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -52,7 +46,7 @@ App::GitGot::Command::list - list managed repositories
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -60,7 +54,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::move;
-{
- $App::GitGot::Command::move::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::move::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: move a repo in a new directory
-
+$App::GitGot::Command::move::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -73,7 +67,7 @@ App::GitGot::Command::move - move a repo in a new directory
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -81,7 +75,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::mux;
-{
- $App::GitGot::Command::mux::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::mux::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: open a tmux window for a selected project
-
+$App::GitGot::Command::mux::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -72,7 +66,7 @@ App::GitGot::Command::mux - open a tmux window for a selected project
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -80,7 +74,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::push;
-{
- $App::GitGot::Command::push::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::push::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Push local changes to the default remote in git repos
-
+$App::GitGot::Command::push::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -60,7 +54,7 @@ App::GitGot::Command::push - Push local changes to the default remote in git rep
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -68,7 +62,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::remove;
-{
- $App::GitGot::Command::remove::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::remove::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: remove a managed repository from your config
-
+$App::GitGot::Command::remove::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -64,7 +58,7 @@ App::GitGot::Command::remove - remove a managed repository from your config
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -72,7 +66,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::status;
-{
- $App::GitGot::Command::status::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::status::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: print status info about repos
-
+$App::GitGot::Command::status::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -34,7 +28,7 @@ App::GitGot::Command::status - print status info about repos
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -42,7 +36,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::that;
-{
- $App::GitGot::Command::that::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::that::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: check if a given repository is managed
-
+$App::GitGot::Command::that::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -16,6 +10,10 @@ sub command_names { qw/ that / }
sub _execute {
my( $self, $opt, $args ) = @_;
my $path = pop @$args;
+
+ defined $path and -d $path
+ or say STDERR 'ERROR: You must provide a path to a repo to check' and exit 1;
+
$self->_path_is_managed( $path ) or exit 1;
}
@@ -34,7 +32,7 @@ App::GitGot::Command::that - check if a given repository is managed
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -42,7 +40,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::this;
-{
- $App::GitGot::Command::this::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::this::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: check if the current repository is managed
-
+$App::GitGot::Command::this::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -36,7 +30,7 @@ App::GitGot::Command::this - check if the current repository is managed
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -44,7 +38,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::update;
-{
- $App::GitGot::Command::update::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::update::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: update managed repositories
-
+$App::GitGot::Command::update::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -34,7 +28,7 @@ App::GitGot::Command::update - update managed repositories
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -42,7 +36,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::update_status;
-{
- $App::GitGot::Command::update_status::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::update_status::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: update managed repositories then display their status
-
+$App::GitGot::Command::update_status::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -38,7 +32,7 @@ App::GitGot::Command::update_status - update managed repositories then display t
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -46,7 +40,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command::version;
-{
- $App::GitGot::Command::version::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::version::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: display application version
-
+$App::GitGot::Command::version::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Command';
use 5.010;
@@ -28,7 +22,7 @@ App::GitGot::Command::version - display application version
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -36,7 +30,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Command;
-{
- $App::GitGot::Command::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Command::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Base class for App::GitGot commands
-
+$App::GitGot::Command::VERSION = '1.16';
use Mouse;
extends 'MouseX::App::Cmd::Command';
use 5.010;
@@ -329,6 +323,58 @@ sub _git_update {
return $msg;
}
+sub _git_fetch {
+ my ( $self, $entry ) = @_
+ or die "Need entry";
+
+ my $msg = '';
+
+ my $path = $entry->path;
+
+ if ( !-d $path ) {
+ make_path $path;
+
+ try {
+ $entry->clone( $entry->repo , './' );
+ $msg .= $self->major_change('Checked out');
+ }
+ catch { $msg .= $self->error('ERROR') . "\n$_" };
+ }
+ elsif ( -d "$path/.git" ) {
+ try {
+ my @o = $entry->fetch;
+
+ # "git fetch" doesn't output anything to STDOUT only STDERR
+ my @err = @{ $entry->_wrapper->ERR };
+
+ # If something was updated then STDERR should contain something
+ # similar to:
+ #
+ # From git://example.com/link-to-repo
+ # SHA1___..SHA1___ master -> origin/master
+ #
+ # So search for /^From / in STDERR to see if anything was outputed
+ if ( grep { /^From / } @err ) {
+ $msg .= $self->major_change('Updated');
+ $msg .= "\n" . join("\n",@err) unless $self->quiet;
+ }
+ elsif ( scalar @err == 0) {
+ # No messages to STDERR means repo was already updated
+ $msg .= $self->minor_change('Up to date') unless $self->quiet;
+ }
+ else {
+ # Something else occured (possibly a warning)
+ # Print STDERR and move on
+ $msg .= $self->warning('Problem during fetch');
+ $msg .= "\n" . join("\n",@err) unless $self->quiet;
+ }
+ }
+ catch { $msg .= $self->error('ERROR') . "\n$_" };
+ }
+
+ return $msg;
+}
+
sub _read_config {
my $file = shift;
@@ -456,9 +502,40 @@ sub _update {
}
}
+sub _fetch {
+ my( $self , @repos ) = @_;
+
+ my $max_len = $self->max_length_of_an_active_repo_label;
+
+ REPO: for my $repo ( @repos ) {
+ next REPO unless $repo->repo;
+
+ my $name = $repo->name;
+
+ my $msg = sprintf "%3d) %-${max_len}s : ", $repo->number, $repo->label;
+
+ my ( $status, $fxn );
+
+ my $repo_type = $repo->type;
+
+ if ( $repo_type eq 'git' ) { $fxn = '_git_fetch' }
+ ### FIXME elsif( $repo_type eq 'svn' ) { $fxn = 'svn_update' }
+ else { $status = $self->error("ERROR: repo type '$_' not supported") }
+
+ $status = $self->$fxn($repo) if ($fxn);
+
+ next REPO if $self->quiet and !$status;
+
+ say "$msg$status";
+ }
+}
+
+
sub _path_is_managed {
my( $self , $path ) = @_;
+ return unless $path;
+
my $dir = dir( $path );
# find repo root
@@ -514,7 +591,7 @@ App::GitGot::Command - Base class for App::GitGot commands
=head1 VERSION
-version 1.10
+version 1.16
=head1 METHODS
@@ -538,7 +615,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Outputter::dark;
-{
- $App::GitGot::Outputter::dark::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Outputter::dark::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Color scheme appropriate for dark terminal backgrounds
-
+$App::GitGot::Outputter::dark::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Outputter';
use 5.010;
@@ -50,7 +44,7 @@ App::GitGot::Outputter::dark - Color scheme appropriate for dark terminal backgr
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -58,7 +52,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Outputter::light;
-{
- $App::GitGot::Outputter::light::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Outputter::light::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Color scheme appropriate for dark terminal backgrounds
-
+$App::GitGot::Outputter::light::VERSION = '1.16';
use Mouse;
extends 'App::GitGot::Outputter';
use 5.010;
@@ -53,7 +47,7 @@ App::GitGot::Outputter::light - Color scheme appropriate for dark terminal backg
=head1 VERSION
-version 1.10
+version 1.16
=head1 AUTHOR
@@ -61,7 +55,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,12 +1,6 @@
package App::GitGot::Outputter;
-{
- $App::GitGot::Outputter::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Outputter::AUTHORITY = 'cpan:GENEHACK';
-}
# ABSTRACT: Generic base class for outputting formatted messages.
-
+$App::GitGot::Outputter::VERSION = '1.16';
use Mouse;
use 5.010;
@@ -61,7 +55,7 @@ App::GitGot::Outputter - Generic base class for outputting formatted messages.
=head1 VERSION
-version 1.10
+version 1.16
=head1 METHODS
@@ -87,7 +81,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,10 +1,5 @@
package App::GitGot::Repo::Git;
-{
- $App::GitGot::Repo::Git::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Repo::Git::AUTHORITY = 'cpan:GENEHACK';
-}
+$App::GitGot::Repo::Git::VERSION = '1.16';
# ABSTRACT: Git repo objects
use Mouse;
extends 'App::GitGot::Repo';
@@ -25,6 +20,7 @@ has '_wrapper' => (
cherry
clone
config
+ fetch
gc
pull
push
@@ -41,18 +37,14 @@ sub _build__wrapper {
if ( $ENV{GITGOT_FAKE_GIT_WRAPPER} ) {
my $mock = Test::MockObject->new;
$mock->set_isa( 'Git::Wrapper' );
- foreach my $method ( qw/ cherry clone gc pull
+ foreach my $method ( qw/ cherry clone fetch gc pull
remote symbolic_ref / ) {
$mock->mock( $method => sub { return( '1' )});
}
- $mock->mock( 'status' => sub { package MyFake;
-{
- $MyFake::VERSION = '1.10';
-}
-BEGIN {
- $MyFake::AUTHORITY = 'cpan:GENEHACK';
-} sub get { return () }; return bless {} , 'MyFake' } );
+ $mock->mock( 'status' => sub { package
+ MyFake; sub get { return () }; return bless {} , 'MyFake' } );
$mock->mock( 'config' => sub { 0 });
+ $mock->mock( 'ERR' => sub { [ ] });
return $mock
}
@@ -113,7 +105,7 @@ App::GitGot::Repo::Git - Git repo objects
=head1 VERSION
-version 1.10
+version 1.16
=head1 METHODS
@@ -133,7 +125,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,10 +1,5 @@
package App::GitGot::Repo;
-{
- $App::GitGot::Repo::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::Repo::AUTHORITY = 'cpan:GENEHACK';
-}
+$App::GitGot::Repo::VERSION = '1.16';
# ABSTRACT: Base repository objects
use Mouse;
use 5.010;
@@ -112,7 +107,7 @@ App::GitGot::Repo - Base repository objects
=head1 VERSION
-version 1.10
+version 1.16
=head1 METHODS
@@ -127,7 +122,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,10 +1,5 @@
package App::GitGot;
-{
- $App::GitGot::VERSION = '1.10';
-}
-BEGIN {
- $App::GitGot::AUTHORITY = 'cpan:GENEHACK';
-}
+$App::GitGot::VERSION = '1.16';
use Mouse;
extends 'MouseX::App::Cmd';
# ABSTRACT: A tool to make it easier to manage multiple git repositories.
@@ -25,7 +20,7 @@ App::GitGot - A tool to make it easier to manage multiple git repositories.
=head1 VERSION
-version 1.10
+version 1.16
=head1 SYNOPSIS
@@ -37,7 +32,7 @@ John SJ Anderson <genehack@genehack.org>
=head1 COPYRIGHT AND LICENSE
-This software is copyright (c) 2013 by John SJ Anderson.
+This software is copyright (c) 2014 by John SJ Anderson.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -1,100 +0,0 @@
-use 5.006;
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
-
-use Test::More tests => 25 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
-
-
-
-my @module_files = (
- 'App/GitGot.pm',
- 'App/GitGot/Command.pm',
- 'App/GitGot/Command/add.pm',
- 'App/GitGot/Command/chdir.pm',
- 'App/GitGot/Command/clone.pm',
- 'App/GitGot/Command/fork.pm',
- 'App/GitGot/Command/gc.pm',
- 'App/GitGot/Command/list.pm',
- 'App/GitGot/Command/move.pm',
- 'App/GitGot/Command/mux.pm',
- 'App/GitGot/Command/push.pm',
- 'App/GitGot/Command/remove.pm',
- 'App/GitGot/Command/status.pm',
- 'App/GitGot/Command/that.pm',
- 'App/GitGot/Command/this.pm',
- 'App/GitGot/Command/update.pm',
- 'App/GitGot/Command/update_status.pm',
- 'App/GitGot/Command/version.pm',
- 'App/GitGot/Outputter.pm',
- 'App/GitGot/Outputter/dark.pm',
- 'App/GitGot/Outputter/light.pm',
- 'App/GitGot/Repo.pm',
- 'App/GitGot/Repo/Git.pm'
-);
-
-my @scripts = (
- 'bin/got',
- 'bin/got-complete'
-);
-
-# no fake home requested
-
-my $inc_switch = -d 'blib' ? '-Mblib' : '-Ilib';
-
-use File::Spec;
-use IPC::Open3;
-use IO::Handle;
-
-open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
-
-my @warnings;
-for my $lib (@module_files)
-{
- # see L<perlfaq8/How can I capture STDERR from an external command?>
- my $stderr = IO::Handle->new;
-
- my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, '-e', "require q[$lib]");
- binmode $stderr, ':crlf' if $^O eq 'MSWin32';
- my @_warnings = <$stderr>;
- waitpid($pid, 0);
- is($?, 0, "$lib loaded ok");
-
- if (@_warnings)
- {
- warn @_warnings;
- push @warnings, @_warnings;
- }
-}
-
-foreach my $file (@scripts)
-{ SKIP: {
- open my $fh, '<', $file or warn("Unable to open $file: $!"), next;
- my $line = <$fh>;
- close $fh and skip("$file isn't perl", 1) unless $line =~ /^#!.*?\bperl\b\s*(.*)$/;
-
- my @flags = $1 ? split(/\s+/, $1) : ();
-
- my $stderr = IO::Handle->new;
-
- my $pid = open3($stdin, '>&STDERR', $stderr, $^X, $inc_switch, @flags, '-c', $file);
- binmode $stderr, ':crlf' if $^O eq 'MSWin32';
- my @_warnings = <$stderr>;
- waitpid($pid, 0);
- is($?, 0, "$file compiled ok");
-
- # in older perls, -c output is simply the file portion of the path being tested
- if (@_warnings = grep { !/\bsyntax OK$/ }
- grep { chomp; $_ ne (File::Spec->splitpath($file))[2] } @_warnings)
- {
- warn @_warnings;
- push @warnings, @_warnings;
- }
-} }
-
-
-
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
-
-
@@ -0,0 +1,28 @@
+#! perl
+
+use autodie;
+use strict;
+use warnings;
+
+use lib 't/lib';
+use Test::BASE;
+use Test::More;
+
+use App::Cmd::Tester;
+use App::GitGot;
+
+my( $config , $dir ) = Test::BASE::write_fake_config();
+
+$ENV{GITGOT_FAKE_GIT_WRAPPER} = 1;
+
+{
+ my $result = test_app( 'App::GitGot' => [ 'fetch' , '-f' , $config , '-C' ]);
+
+ like $result->stdout , qr|1\)\s+bar\.git\s+\:\s+Up to date| , 'repo 1';
+ like $result->stdout , qr|2\)\s+bargle\.git\s+\:\s+Checked out| , 'repo 2';
+ is $result->stderr , '' , 'nothing on STDERR';
+ is $result->exit_code , 0 , 'exit with 0';
+}
+
+chdir(); ## let File::Temp clean up...
+done_testing();
@@ -6,9 +6,9 @@ use warnings;
use 5.010;
use Carp;
-use File::Slurp;
-use File::Temp qw/ tempdir tempfile /;
-use YAML qw/ DumpFile /;
+use File::Slurp::Tiny qw/ write_file /;
+use File::Temp qw/ tempdir tempfile /;
+use YAML qw/ DumpFile /;
INIT {
my( undef, $config ) = tempfile();
@@ -1,16 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-use strict;
-use warnings;
-use Test::More;
-
-eval 'use Test::EOL';
-plan skip_all => 'Test::EOL required' if $@;
-
-all_perl_files_ok({ trailing_whitespace => 1 });
@@ -1,12 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.07
-use strict;
-use warnings;
-use Test::Kwalitee tests => [ qw( -use_strict ) ];
@@ -7,15 +7,9 @@ BEGIN {
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
- if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
- if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
@@ -7,9 +7,8 @@ BEGIN {
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();