Posted
7 days
ago
by
nob...@example.com (Hyrum)
The year is rapidly slipping by, and I was moderately concerned about
visiting a state highpoint during the year. Today my fears were soothed
as I got a chance to visit the top of Alabama: Cheaha Mountain. I was at
the FSE-16 conference
... [More]
Atlanta and made the early morning drive across
state lines to visit the highpoint. It was a bit chilly, but the leaves
were nice, and it was good to get out of the hotel for a bit. See the
trip report for a full account of my trip. [Less]
Posted
9 days
ago
by
nob...@example.com (Ben Collins-Sussman)
So everyone knows my job at Google is to tech-lead the team responsible
for our Subversion servers, as part of our larger open-source project
hosting service. Thus, having come to a reasonable temporary stopping
point with my previous 20%
... [More]
project, I’ve turned to a new 20% project:
making Subversion itself better.
Specifically, I want to right a wrong, undo something I’ve felt nasty
about for years. Subversion’s HTTP protocol is very complicated and
unintelligible to mere mortals. Honestly, if Greg Stein and I got hit by
buses, nobody would really understand what’s going on inside mod_dav_svn.
What’s the backstory here? Basically, we tried to make mod_dav_svn
implement a reasonable subset of DeltaV, which was a mostly-failed spec
written long ago to implement Clearcase^H^H^H^H version control over
HTTP. Eight years later, this extra complexity hasn’t bought us any
interoperability with other version control systems — just a big headache
to maintain and a icky performance penalty. The Subversion client, in
being a “good DeltaV citizen”, isn’t allowed to directly talk about URLs
that represent revisions, transactions, historical objects, and so on.
Instead, it has to play dumb and continually issue a series of requests
to “discover” opaque URLs that represent these concepts. It’s sort of
like the client playing a formal game of 20 Questions, when it already
knows the answers.
So after some chats with Greg Stein and others, I’ve collected ideas on
how to streamline our existing protocol into something much more simple,
tight, and comprehensible. Way fewer requests too. You can read our
evolving design document and send questions/feedback to
dev@subversion.tigris.org. Subversion 1.6 is planned to be released at
year’s end, so if we’re lucky we’ll see this new protocol in Subversion
1.7 next summer.
Speaking of Subversion 1.6, however: a smaller sort of glastnost is
happening there as well. In this new spirit of HTTP openness, we’re
officially ending our policy of “not telling people how to access older
revisions” over HTTP. If you recall, the Subversion book has always said:
Q: Can I view older revisions?
A: Your web browser speaks ordinary HTTP only. That means it knows
only how to GET public URLs, which represent the latest versions of
files and directories. [...] To find an older version of a file, a
client must follow a specific procedure to “discover” the proper URL;
the procedure involves issuing a series of WebDAV PROPFIND requests
and understanding DeltaV concepts. This is something your web browser
simply can’t do.
I’m here to break the chains! Reveal the lies! RELEASE THE KRAKEN. In
Subversion 1.6, we’ve gone and implemented an official public query
syntax for accessing older (revision, path) coordinate pairs:
http://host/repos/path?r=REV
http://host/repos/path?p=PEGREV
http://host/repos/path?p=PEGREV&r=REV
This query syntax offers the same peg-revision concept that one sees in
the Subversion commandline client. The first syntax means “start at PATH
in the latest revision, then follow the object back in time to revision
REV.” This works even if the object was renamed and exists at a different
place in the older revision. The second syntax allows one to pinpoint an
object with no history tracing: just jump to revision PEGREV, and find
PATH. The third syntax is very much like running “svn subcommand -r REV
path@PEGREV”: start at PEGREV, find PATH, then trace the object back into
older revision REV.
In any case, this means source code browsers and other tools can stop
using “secret” internal urls to access older objects. [Less]
Posted
9 days
ago
by
nob...@example.com (Heather)
I feel compelled this evening to write a bit. The last couple of months
have been full of ups and downs. We’ve been so blessed to have grandmas
here to help take care of us and the support of dear friends here and
friends and family
... [More]
everywhere else. Jonathan’s birth, Hyrum’s
appendectomy, bishopric calling and travels and just all of us generally
trying to adjust to Jonathan’s addition has created a little craziness
around our house.
Jonathan continues to bless our life everyday as does Hannah. Hannah
loves her little brother and I’m sure she will have no problem mothering
him for the rest of his life. She loves to give him hugs and kisses.
Today she kept wiping the drool off his chin. Jonathan continues to grow
and look so cute with his double chin. I wait everyday for that first
real giggle. I think I heard one the other night but it may have been a
dream.
Hyrum is out of town again this week but happily for me this his last
trip for the semester, at least work related travel. He and Ian are
hatching a trip for over Christmas break, we’ll see what happens with
that. I sure miss him when he’s gone and so does Hannah. Today she heard
the wind rustling leaves outside our door and asked if it was daddy. I
said no and she followed up with Grandpa. She was pretty disappointed
that neither Daddy nor Grandpa was going to walk in our door.
We’ve seen the Wrights for the last two weekends and she loves seeing
them. We are glad they live close enough to see pretty often. We wish we
could see my parents more often though. We’re feeling pretty lucky for
having seen them twice this year. Family is a wonderful blessing. We’re
so lucky to be part of two big wonderful families. We just wish we could
all live a little closer together. I have siblings in Utah, Idaho, and
Colorado with my parents in New York and Hyrum’s parents are in Texas
with siblings in Texas and Utah.
I’m really looking forward to the holiday season. I love the smells, the
music and just the general feelings. I love shopping for Christmas
presents and planning my goodies for the holiday. I bought fabric the
other day to make a tree skirt. I am really excited. I love creating
things whether it’s crafts, dresses for Hannah, food or something else. I
feel intelligent when I figure out how to make a pattern for the project
I have in mind. These days, an opportunity to use my brain is greatly
appreciated. I always hated math in school but I have to admit that I use
it a lot when I am making a pattern. I never thought I’d say that.
We’re doing well just trying to make it one day at a time. We are loving
life and dealing with all the excitement and the daily happenings that
remind us we’re alive and really blessed. I’m glad that my problems are
potty training our toddler and keeping our infant happy. Those things
really are pretty simple compared to things other people have to deal
with. I’m grateful for my husband. I have two beautiful children and the
opportunity to care for them and love them is such a blessing. God has
blessed us and for that I am grateful. [Less]
Posted
10 days
ago
by
nob...@example.com (Mark Phippard)
This past summer, via my role as project owner for the Subclipse project,
I decided to participate as a mentor in the Google Summer of Code
program. Summer of Code is a great way to bring some visibility to your
project as well as build
... [More]
relationships with other open source developers.
One of the first things you have to do when participating in Summer of
Code as a mentor organization is to come up with some ideas for projects
that students can work on for the summer. It needs to be something
interesting enough to attract talented students and at the same time it
ought to be something where a measurable amount of work can be
accomplished in just one summer. I came up with a number of ideas, but
the one I knew someone would go after, and the one I hoped would get
done, was to add a revision graph feature.
One of the top requests I hear from new Subversion users is the desire
for a good revision graph feature. Unfortunately the way that Subversion
stores information in its repository is not conducive to providing a
feature like this. Specifically, Subversion does not currently track
"copy-to" information. It can tell you the history of a given item and
trace that history back through all of the places it was "copied-from",
but for any given path/revision pair it cannot tell you if it has been
copied to another location. This is an essential feature to create a
proper revision graph, so in order to draw a decent graph, you pretty
much need to have the entire history of the repository available so that
you can construct the "copy-to" information yourself. Performance would
be terrible if you had to get this history every time, so a good local
cache of the information is essential. This is a fairly challenging
engineering task and therefore was one that the existing Subclipse team
was unlikely to ever find the time to do. At the same time, it was a
great task for a motivated student. Combined with the ability to
visualize the information in cool ways via the rich graphical library
that Eclipse provides, I knew we would attract some interest.
We were fortunate enough to attract a great student, Alberto Gimeno. He
dove right into the task when the Summer of Code program started and did
a great job delivering the feature. I was hoping we would come out of
this with some interesting code that someone else might want to pick up
and finish, but Alberto was able to drive this feature to a point that it
was nearly ready to ship when the summer ended. We have just spent a few
months adding some Eclipse-polish to it and integrating it into
Subclipse. Today we release it, and this is what a simple graph looks
like:
[IMAGE]
Notice that the graph is capable of showing merge information when used
with Subversion 1.5. It also contains a number of nice features made
available via the Eclipse Graphical Editing Framework. Namely, the
ability to zoom in/out, export to an image file as well as the ability to
navigate a large graph via the Outline view.
This feature will be included in an upcoming release of the CollabNet
Desktop - Eclipse Edition. You can get it today via the "dev-builds"
update site for the CollabNet Desktop. Download information for the
CollabNet Desktop can be found at the project home here.
Additional details on the revision graph feature can be found at the
Subclipse site.
I would like to close by once again thanking Alberto for the work he did
on this feature. I look forward to his continued involvement in this
feature and the Subclipse project. I would also thank Google for running
Summer of Code and including Subclipse in the program for 2008. [Less]
Posted
10 days
ago
by
Mark Phippard