Opened 8 years ago

Closed 5 years ago

#3242 closed defect (fixed)

Research moving the website from svn to git

Reported by: phobos Owned by:
Priority: Medium Milestone: WebsiteV3
Component: Webpages/Website Version:
Severity: Keywords: www-team
Cc: lunar@…, mrphs Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Figure out a working model for a centralized git repo of the website, to move off svn.

Child Tickets

TicketStatusOwnerSummaryComponent
#11667closederinn, nickm, Sebastian, weaselPlease create a personal git repo for torproject websiteInternal Services/Service - git

Change History (31)

comment:1 Changed 8 years ago by phobos

I think this is pretty straightforward. The current people with commit access should still have commit access. We can continue to separate commit from pushing to the live website. The conversion from svn to git could proceed just like our other svn to git migrations.

comment:2 Changed 8 years ago by Sebastian

Yup. The only complication is that the website currently doesn't build from a git clone. Maybe there's an easy fix, I'll see if I find one.

comment:3 Changed 8 years ago by phobos

An alternate option is to put #4165 into git, and leave the old site in svn until it's replaced by something else.

comment:4 in reply to:  3 Changed 8 years ago by phobos

Resolution: wontfix
Status: newclosed

Replying to phobos:

An alternate option is to put #4165 into git, and leave the old site in svn until it's replaced by something else.

I'm going with this model, do both conversions at once, to make it easier.

comment:5 Changed 8 years ago by Sebastian

I just committed r25343 which means the website can now be built from a git clone. Seems worthwhile while the migration to something else is stalling

comment:6 Changed 7 years ago by Sebastian

Resolution: wontfix
Status: closedreopened

Since #4165 was closed, we could push this forward. If we wanted.

comment:7 Changed 7 years ago by phobos

How do you envision it working?

comment:8 Changed 7 years ago by Sebastian

We would have a git repository, and all website contributors would have push access to it, extremely similar to the current svn setup.

comment:9 Changed 7 years ago by phobos

I think git provides more flexibility than svn. This will cause problems as people have local git repos that get out of sync with one another. Who is responsible for merging branches? Who is responsible for cherry-picking commits? Who is responsible for handling conflicts?

If we had a dedicated webmaster, they would be the obvious person. I fear I become the webmaster in this situation.

comment:10 Changed 7 years ago by Sebastian

it's the same as now. There would be no separate repositories to get out of sync, no webmaster with central control. Nobody would merge changes from others into the official tree, that'd be the responsibility of those others.

comment:11 Changed 7 years ago by cypherpunks

Priority: normalblocker

move to git already :(

comment:12 Changed 7 years ago by arma

Priority: blockernormal

What's the rush?

comment:13 Changed 7 years ago by phobos

I completely forgot about this ticket until these recent updates today.

Did we ever setup a git repo for the website?

comment:14 in reply to:  13 Changed 7 years ago by cypherpunks

Replying to phobos:

I completely forgot about this ticket until these recent updates today.

Did we ever setup a git repo for the website?

its not on gitweb :(

comment:15 Changed 7 years ago by cypherpunks

No git repo? :(

comment:16 Changed 7 years ago by cypherpunks

*bump*

comment:17 Changed 7 years ago by cypherpunks

another *bump*

comment:18 Changed 6 years ago by cypherpunks

another *bump*

comment:20 Changed 6 years ago by lunar

Cc: lunar@… added

comment:21 Changed 6 years ago by phobos

Milestone: Tor Website 3.0

comment:22 Changed 6 years ago by phobos

Keywords: www-team added

comment:23 Changed 6 years ago by seanmrafferty

You should definitely move to Git. The biggest reason is that it's distributed. SVN is awesome, but once you start using a distributed vcs, you can't image life with out it. There are plenty of other good reasons which are easily found on the web.

I just wanted to throw this out for debate, but you should seriously consider GitHub? It has great tools to manage git repos. It has wikis and issue tracking. In-line code comments, history, diffs, blames, It's more than capable of handling large open source projects (e.g Rails).

You can always mirror your GitHub repos on your own servers for backups.

Last edited 6 years ago by seanmrafferty (previous) (diff)

comment:24 Changed 6 years ago by lunar

Yes, we are going to using Git. Almost every other projects from Tor uses Git now.

Regarding GitHub: we have different security requirements than they do. Also Free Software Needs Free Tools. If people want to mirror stuff on proprietary platforms, fine; but not the other way around.

In any cases, this is not the ticket to discuss it. Tor already has all the infrastructure needed to host Git repositories for its website.

comment:25 Changed 6 years ago by seanmrafferty

lunar, that's an excellent post you referenced about free software, and a perfect response to my post. My apologies for forgetting the fundamental principles of free software.

comment:26 Changed 5 years ago by mrphs

We talked about autobuilds and ways to avoid disaster, on #tor-project yesterday. There were two slightly different suggestions:

< phobos> git vs. svn is arguable, but not worth arguing over
03:22 < mrphs> I remember weasel mentioned you didn't like automatic builds? and that was what stopped him from moving forward?
03:22 < mrphs> I might be wrong tho.
03:23 < arma81> mrphs: correct. it's really elegant to just have the webserver build itself after commit. easy to do. but,
03:23 < arma81> what if somebody commits an rm -rf / ?
03:23 < phobos> automatic builds are fine
03:23 < phobos> automatic pushes to live are not fine
03:23 < arma81> i guess the answer is, don't let people merge bad stuff.
03:23 < arma81> phobos: if there's a website master git and only a few people can push to it, automatic builds of that sound fine to me.
03:24 < mrphs> +1 ^
03:24 < arma81> trouble is.. who are those people? you me helix mike?
03:24 < phobos> the idea is to have a staging site
03:24 < phobos> so commits to go staging
03:24 < phobos> and then some small list of people push to live
03:24 < arma81> well, that's one idea. it's not very gitty.
03:26 < phobos> the code repo and process to go live are seperate things
03:28 < mrphs> why does it have to be any different from other projects? every project has a maintainer, every random person can commit, submit a patch and it can be merged after review by its maintaner(s).
03:29 < phobos> we're saying the same thing
03:30 < phobos> anyone can commit/patch
03:30 < phobos> it autobuilds to staging
03:30 < phobos> then a webmaster commits to live
03:30 < phobos> or pushes to live
03:31 < mrphs> it's two (slightly) different ways to do the same thing. yes.
03:31 < phobos> this avoids someone slipping in ads, subtle changes to text and having it go live
03:32 < phobos> or missing brackets
03:32 < phobos> etc
03:33 < phobos> but really, this discussion should be in the ticket

comment:27 Changed 5 years ago by phobos

How's progress on this coming along?

comment:28 in reply to:  27 Changed 5 years ago by mrphs

Replying to phobos:

How's progress on this coming along?

Not sure if you saw my email on tor-talk about this.

I wrote an script to do the transition and tested it on nima/website.git. It seems to be working fine, except for about 15k commits have an unknown author, since I didn't have their git name/email add.

I can re-run the script sometime this weekend and update that git repo. Then we can probably move it to a more official repo (like gitweb.tpo/website.git) ... and then perhaps someone with sysadmin superpowers should make changes on the webserver

Last edited 5 years ago by mrphs (previous) (diff)

comment:29 Changed 5 years ago by mrphs

Cc: mrphs added

comment:30 Changed 5 years ago by phobos

Owner: phobos deleted
Status: reopenedassigned

comment:31 Changed 5 years ago by Sebastian

Resolution: fixed
Status: assignedclosed

weasel did it

Note: See TracTickets for help on using tickets.