dotwaffle / rancid-git

DEPRECATED -- Strongly consider using the upstream, the version here is very out of date and a poor place to start from!
http://www.shrubbery.net/rancid/
Other
218 stars 92 forks source link

Merge RANCID 3.2 (when released) including upstream git support #23

Open dotwaffle opened 10 years ago

dotwaffle commented 10 years ago

This will take some time, with tens of thousands of changes.

Most of the changes are simple, but there are a few places where some serious tinkering will need to be done.

I'm aiming to do at least some of this during a week off I have booked at the end of April, with an eventual preliminary release in May/June 2014. I'll try and do the work publicly, it will be on the "integration" branch.

At the end, I'm hoping to have a serious of patchsets to be applied that can be passed back upstream. Very happy for people to lend a hand -- especially for RANCID device types that I don't have access to.

samdoran commented 10 years ago

I'd love to help with this. I don't have tons of experience with the code base but I'll gladly lend a hand wherever possible. Let me know what you need.

dotwaffle commented 10 years ago

Wow, an actual offer of support ;)

I'd recommend doing:

git checkout master git diff origin/upstream

Then, when you've stopped swearing at the screen, see if there's anything that takes your fancy! I imagine a lot of it is an easy merge -- but I need to make sure the additional router types continue to work etc.

It'll be a long struggle, but I have a week off as of next Wednesday so that's when I'm planning on cracking on with it =) Feel free to start having a play on the "integrate" branch I've pushed (by doing "git merge origin/upstream") and we'll see how far we can both get!

Cheers!

supertylerc commented 9 years ago

It's been a while since this was updated. Is this still planned?

dotwaffle commented 9 years ago

I'll be honest, I don't really have the time for this at the moment. If someone submits a pull request, I'm happy to merge it. Otherwise, it's not likely to be done in the next few months as I'm seconded to Hong Kong until January and only have a Chromebook while I'm out here.

supertylerc commented 9 years ago

Thanks. I might make an attempt, but my skills at writing code (much less merging and debugging) are pretty minimal.

tgreer commented 9 years ago

git merge origin/upstream Auto-merging share/Makefile.in CONFLICT (content): Merge conflict in share/Makefile.in Auto-merging share/Makefile.am Auto-merging missing CONFLICT (content): Merge conflict in missing Removing man/xrrancid.1 Auto-merging man/router.db.5 Auto-merging man/rancid_intro.1 CONFLICT (content): Merge conflict in man/rancid_intro.1 Auto-merging man/rancid.conf.5.in CONFLICT (content): Merge conflict in man/rancid.conf.5.in Auto-merging man/rancid-run.1 CONFLICT (content): Merge conflict in man/rancid-run.1 Auto-merging man/par.1 CONFLICT (content): Merge conflict in man/par.1 Auto-merging man/cloginrc.5 CONFLICT (content): Merge conflict in man/cloginrc.5 Auto-merging man/clogin.1 Auto-merging man/Makefile.in CONFLICT (content): Merge conflict in man/Makefile.in Auto-merging lib/mrv.pm.in Auto-merging lib/junos.pm.in CONFLICT (content): Merge conflict in lib/junos.pm.in Auto-merging lib/iosxr.pm.in CONFLICT (content): Merge conflict in lib/iosxr.pm.in Auto-merging lib/foundry.pm.in CONFLICT (content): Merge conflict in lib/foundry.pm.in Auto-merging include/version.h.in CONFLICT (content): Merge conflict in include/version.h.in Auto-merging include/version.h CONFLICT (content): Merge conflict in include/version.h Auto-merging include/config.h.in CONFLICT (content): Merge conflict in include/config.h.in CONFLICT (modify/delete): include/config.h deleted in HEAD and modified in origin/upstream. Version origin/upstream of include/config.h left in tree. Auto-merging include/Makefile.in CONFLICT (content): Merge conflict in include/Makefile.in Auto-merging etc/rancid.conf.sample.in Auto-merging etc/Makefile.in CONFLICT (content): Merge conflict in etc/Makefile.in Auto-merging configure.ac CONFLICT (content): Merge conflict in configure.ac Auto-merging configure CONFLICT (content): Merge conflict in configure CONFLICT (rename/delete): bin/rancid_par.in deleted in origin/upstream and renamed in HEAD. Version HEAD of bin/rancid_par.in left in tree. Auto-merging bin/rancid.in CONFLICT (content): Merge conflict in bin/rancid.in Auto-merging bin/rancid-run.in Auto-merging bin/rancid-fe.in CONFLICT (content): Merge conflict in bin/rancid-fe.in Auto-merging bin/nxrancid.in CONFLICT (content): Merge conflict in bin/nxrancid.in Auto-merging bin/nsrancid.in CONFLICT (content): Merge conflict in bin/nsrancid.in Auto-merging bin/nrancid.in Auto-merging bin/jerancid.in Auto-merging bin/hpuifilter.c CONFLICT (content): Merge conflict in bin/hpuifilter.c Auto-merging bin/hlogin.in Auto-merging bin/fnrancid.in Auto-merging bin/fnlogin.in Auto-merging bin/flogin.in Auto-merging bin/f5rancid.in CONFLICT (content): Merge conflict in bin/f5rancid.in Auto-merging bin/f10rancid.in CONFLICT (content): Merge conflict in bin/f10rancid.in Auto-merging bin/control_rancid.in CONFLICT (content): Merge conflict in bin/control_rancid.in Auto-merging bin/clogin.in Auto-merging bin/cat5rancid.in Auto-merging bin/arrancid.in CONFLICT (content): Merge conflict in bin/arrancid.in Auto-merging bin/Makefile.in CONFLICT (content): Merge conflict in bin/Makefile.in Auto-merging bin/Makefile.am CONFLICT (content): Merge conflict in bin/Makefile.am CONFLICT (modify/delete): aclocal.m4 deleted in HEAD and modified in origin/upstream. Version origin/upstream of aclocal.m4 left in tree. Auto-merging README CONFLICT (content): Merge conflict in README Auto-merging Makefile.in CONFLICT (content): Merge conflict in Makefile.in Auto-merging Makefile.am CONFLICT (content): Merge conflict in Makefile.am Auto-merging CHANGES CONFLICT (content): Merge conflict in CHANGES Automatic merge failed; fix conflicts and then commit the result.

It's not that bad!

dotwaffle commented 9 years ago

Right, just imported RANCID-3.1.tar.gz -- the integration branch is now taken from current HEAD.

Merging the upstream branch produces:

[dotwaffle@on6:Code/rancid-git]$ git merge upstream Auto-merging share/Makefile.in CONFLICT (content): Merge conflict in share/Makefile.in Auto-merging share/Makefile.am Auto-merging missing CONFLICT (content): Merge conflict in missing Auto-merging man/router.db.5 Auto-merging man/rancid_intro.1 CONFLICT (content): Merge conflict in man/rancid_intro.1 Auto-merging man/rancid.conf.5.in CONFLICT (content): Merge conflict in man/rancid.conf.5.in Auto-merging man/rancid-run.1 CONFLICT (content): Merge conflict in man/rancid-run.1 Auto-merging man/par.1 CONFLICT (content): Merge conflict in man/par.1 Removing man/francid.1 Auto-merging man/cloginrc.5 CONFLICT (content): Merge conflict in man/cloginrc.5 Auto-merging man/clogin.1 Auto-merging man/Makefile.in CONFLICT (content): Merge conflict in man/Makefile.in Auto-merging lib/mrv.pm.in Auto-merging lib/junos.pm.in CONFLICT (content): Merge conflict in lib/junos.pm.in Auto-merging lib/iosxr.pm.in CONFLICT (content): Merge conflict in lib/iosxr.pm.in Auto-merging lib/foundry.pm.in CONFLICT (content): Merge conflict in lib/foundry.pm.in Auto-merging include/version.h.in CONFLICT (content): Merge conflict in include/version.h.in Auto-merging include/version.h CONFLICT (content): Merge conflict in include/version.h Auto-merging include/config.h.in CONFLICT (content): Merge conflict in include/config.h.in CONFLICT (modify/delete): include/config.h deleted in HEAD and modified in upstream. Version upstream of include/config.h left in tree. Auto-merging include/Makefile.in CONFLICT (content): Merge conflict in include/Makefile.in Auto-merging etc/rancid.conf.sample.in Auto-merging etc/Makefile.in CONFLICT (content): Merge conflict in etc/Makefile.in Auto-merging configure.ac CONFLICT (content): Merge conflict in configure.ac Auto-merging configure CONFLICT (content): Merge conflict in configure CONFLICT (rename/delete): bin/rancid_par.in deleted in upstream and renamed in HEAD. Version HEAD of bin/rancid_par.in left in tree. Auto-merging bin/rancid.in CONFLICT (content): Merge conflict in bin/rancid.in Auto-merging bin/rancid-run.in Auto-merging bin/rancid-fe.in CONFLICT (content): Merge conflict in bin/rancid-fe.in Auto-merging bin/nxrancid.in CONFLICT (content): Merge conflict in bin/nxrancid.in Auto-merging bin/nsrancid.in CONFLICT (content): Merge conflict in bin/nsrancid.in Auto-merging bin/nrancid.in Auto-merging bin/jerancid.in Auto-merging bin/hpuifilter.c CONFLICT (content): Merge conflict in bin/hpuifilter.c Auto-merging bin/hlogin.in Auto-merging bin/fnrancid.in CONFLICT (content): Merge conflict in bin/fnrancid.in Auto-merging bin/fnlogin.in Auto-merging bin/flogin.in Auto-merging bin/f5rancid.in CONFLICT (content): Merge conflict in bin/f5rancid.in Auto-merging bin/f10rancid.in CONFLICT (content): Merge conflict in bin/f10rancid.in Auto-merging bin/control_rancid.in CONFLICT (content): Merge conflict in bin/control_rancid.in Auto-merging bin/clogin.in CONFLICT (content): Merge conflict in bin/clogin.in Auto-merging bin/cat5rancid.in Auto-merging bin/arrancid.in CONFLICT (content): Merge conflict in bin/arrancid.in Auto-merging bin/Makefile.in CONFLICT (content): Merge conflict in bin/Makefile.in Auto-merging bin/Makefile.am CONFLICT (content): Merge conflict in bin/Makefile.am CONFLICT (modify/delete): aclocal.m4 deleted in HEAD and modified in upstream. Version upstream of aclocal.m4 left in tree. Auto-merging README CONFLICT (content): Merge conflict in README Auto-merging Makefile.in CONFLICT (content): Merge conflict in Makefile.in Auto-merging Makefile.am CONFLICT (content): Merge conflict in Makefile.am Auto-merging CHANGES CONFLICT (content): Merge conflict in CHANGES Automatic merge failed; fix conflicts and then commit the result.

So, that gives me a list of things to fix ;)

Annoyingly, it looks like some of the recent fixes I've imported have been fixed upstream and I've not noticed (in particular, the Fortigate patches) -- so it takes a bit more head scratching and merging/testing than I'd normally have to do.

Will start work on this "sometime soon"!

dotwaffle commented 9 years ago

In case anyone is wondering, I'm not ignoring this -- RANCID 3.1.99 (i.e. 3.2 beta) has git integration, so once that is finalised I'm going to integrate it into here.

As it does git a little differently (one per group rather than one in total) it's likely that what I'll end up doing is retiring this repo -- or, maintain it as a patchset pending inclusion into upstream.

darkpixel commented 9 years ago

+1 :)

dotwaffle commented 9 years ago

Ok, we have a bit of a problem.

3.2 has been released (technically 3.2.99 as well) which does git support in an entirely different way -- one per group rather than one per install. This is "the proper way" IMO...

What I'm tempted to do is merge as much as I can in, then have some kind of conversion tool which will rewrite all your git history so that all the commits contain the additional directory layer. I'd be interested in hearing what people want.

I have two days at a demoparty (currently sitting at NVScene in San Jose, CA) where I can have a crack at this, so (a year on from when I first promised) I might actually make some progress with this.

If you have strong feelings on this, speak now or forever hold your peace!

tgreer commented 9 years ago

I preferred your way

On 18 Mar 2015, at 22:25, Matthew Walster notifications@github.com wrote:

Ok, we have a bit of a problem.

3.2 has been released (technically 3.2.99 as well) which does git support in an entirely different way -- one per group rather than one per install. This is "the proper way" IMO...

What I'm tempted to do is merge as much as I can in, then have some kind of conversion tool which will rewrite all your git history so that all the commits contain the additional directory layer. I'd be interested in hearing what people want.

I have two days at a demoparty (currently sitting at NVScene in San Jose, CA) where I can have a crack at this, so (a year on from when I first promised) I might actually make some progress with this.

If you have strong feelings on this, speak now or forever hold your peace!

— Reply to this email directly or view it on GitHub.

buraglio commented 9 years ago

Having the option to choose either option is the proper way in my opinion. That said, there are a lot of caveats with RANCID 3 when it comes to adding customizations and additional support. They've attempted to make it more modular and more flexible, but in turn have made it significantly more complicated and difficult to implement. I struggled with adding my contrib stuff to it and finally just decided stay away from 3 until the docs are not as lacking and ended up attempting a change management system myself called CLAW (https://github.com/buraglio/claw) in python (which predictably has stalled out). I will fully admit that I may be a bit obtuse.