Git mirror news: travis-ci running repoman, git->cvs merge & revert tools

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Git mirror news: travis-ci running repoman, git->cvs merge & revert tools

Michał Górny-5
Hello, everyone.

I would like to announce that our little rsync->git band-aid mirror [1]
is doing fine and we're actively working towards improving Gentoo
development experience.


First of all, we have enabled tree-wide repoman scans using travis-ci
[2]. Besides providing regularly updated repository state report, it
can be used to scan Pull Requests for tree-wide damage :). Asides from
the benefit to external contributors, Gentoo developers can use it to
avoid having to run repoman locally.

For example, if you are doing a big old version cleanup, do it in git
and submit a Pull Request, and travis will figure out if you don't
break any revdeps.


Secondly, I have committed app-portage/lightweight-cvs-toolkit for your
committing pleasure. It consists of three tools:

a. lcvs-init -- that can be used to quickly create partial CVS
checkout, having only pure categories checked out. The repository is
set to use 'gentoo' as master, so you can easily commit into CVS
while keeping the dependencies, eclasses and profiles synced to your
regular rsync/git checkout (with working cache!). The idea is explained
more thoroughly on the wiki [3] and in the script output.

b. lcvs-merge-pr -- a convenient tool to merge github PR (or any git
patch) into your CVS checkout. It 'cvs up -dP' directories
as necessary, git-applies the patch omitting ChangeLogs and Manifests,
calls cvs add/cvs rm as appropriate. All you have to do is update
the ChangeLog and commit :). More about merging on the wiki [4].

c. lcvs-revert -- a convenient tool to revert commits. Pretty much
the idea is: someone breaks something e.g. by removing ebuilds, and you
want to revert that. Instead of playing all the fancy 'cvs add' magic,
you just find the matching git commit and lcvs-revert it. Using logic
similar to lcvs-merge-pr, it fetches the diff and reverse-applies it.
Then you check if everything went fine, ChangeLog and commit :). More
info on the wiki [5] as well.


Thanks to all the people that helped me get this running, and have
fun :).

[1]:https://github.com/gentoo/gentoo-portage-rsync-mirror
[2]:https://travis-ci.org/gentoo/gentoo-portage-rsync-mirror
[3]:https://wiki.gentoo.org/wiki/Lightweight_CVS_Checkout
[4]:https://wiki.gentoo.org/wiki/Project:Git_mirror/Merging_Pull_Requests
[5]:https://wiki.gentoo.org/wiki/Project:Git_mirror/Reverting_Gentoo_commits

--
Best regards,
Michał Górny

attachment0 (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Git mirror news: travis-ci running repoman, git->cvs merge & revert tools

Ben de Groot-2
On 8 February 2015 at 18:38, Michał Górny <[hidden email]> wrote:

> Hello, everyone.
>
> I would like to announce that our little rsync->git band-aid mirror [1]
> is doing fine and we're actively working towards improving Gentoo
> development experience.
>
>
> First of all, we have enabled tree-wide repoman scans using travis-ci
> [2]. Besides providing regularly updated repository state report, it
> can be used to scan Pull Requests for tree-wide damage :). Asides from
> the benefit to external contributors, Gentoo developers can use it to
> avoid having to run repoman locally.
>
> For example, if you are doing a big old version cleanup, do it in git
> and submit a Pull Request, and travis will figure out if you don't
> break any revdeps.
>
>
> Secondly, I have committed app-portage/lightweight-cvs-toolkit for your
> committing pleasure. It consists of three tools:
>
> a. lcvs-init -- that can be used to quickly create partial CVS
> checkout, having only pure categories checked out. The repository is
> set to use 'gentoo' as master, so you can easily commit into CVS
> while keeping the dependencies, eclasses and profiles synced to your
> regular rsync/git checkout (with working cache!). The idea is explained
> more thoroughly on the wiki [3] and in the script output.
>
> b. lcvs-merge-pr -- a convenient tool to merge github PR (or any git
> patch) into your CVS checkout. It 'cvs up -dP' directories
> as necessary, git-applies the patch omitting ChangeLogs and Manifests,
> calls cvs add/cvs rm as appropriate. All you have to do is update
> the ChangeLog and commit :). More about merging on the wiki [4].
>
> c. lcvs-revert -- a convenient tool to revert commits. Pretty much
> the idea is: someone breaks something e.g. by removing ebuilds, and you
> want to revert that. Instead of playing all the fancy 'cvs add' magic,
> you just find the matching git commit and lcvs-revert it. Using logic
> similar to lcvs-merge-pr, it fetches the diff and reverse-applies it.
> Then you check if everything went fine, ChangeLog and commit :). More
> info on the wiki [5] as well.
>
>
> Thanks to all the people that helped me get this running, and have
> fun :).
>
> [1]:https://github.com/gentoo/gentoo-portage-rsync-mirror
> [2]:https://travis-ci.org/gentoo/gentoo-portage-rsync-mirror
> [3]:https://wiki.gentoo.org/wiki/Lightweight_CVS_Checkout
> [4]:https://wiki.gentoo.org/wiki/Project:Git_mirror/Merging_Pull_Requests
> [5]:https://wiki.gentoo.org/wiki/Project:Git_mirror/Reverting_Gentoo_commits
>

Thank you! This looks really useful.

--
Cheers,

Ben | yngwin
Gentoo developer