The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Lesson Learned: use consistent file name formats

(This is really a rant, but I'm hoping to prevent this from happening again.)

We just received an assignment to maintain a web site. Our management decided that we should apply source control to the web pages; if an emergency restore was needed, the sysadmins can not only find the archive, but use automated tools to deploy it as well.

The previous owner of the web site did the bare minimum when managing files, and as a result, the directory listing looked like this...

index.html
index.html.bak
index.html.bak2
index.html.JD20204
index.html.old
index2.html.bak

Trying to recreate the revision history (a chronological sequence of changes) proved to be so excruciating painful that we had to go back to management and get them to agree to keep only the most recent versions of the files in use and throw everything else away; as far as our source control system was concerned, what was in there was version 1.0.0.

In hindsight, I think anything would have worked as long as it was crystal clear what the sequence was. For example, if the following was used, we could have written a perl script to load everything in properly:

index.html
index.html.bak
index.html.bak1
index.html.bak2
index.html.bak3

(With the assumption that index.html was the current, index.html.bak3 was the most recent, and so on, going backwards.)
TheDavid
Tuesday, April 11, 2006
 
 
> Trying to recreate the revision history
> (a chronological sequence of changes)
> proved to be so excruciating painful

This is under the no duh heading. The reason you use source code control is because it's impossible for a human to keep everything consistent. So there was no way for you to create consistent past versions of the sites. Perhaps the waybackmachine would help?
son of parnas
Tuesday, April 11, 2006
 
 
Couldn't you check the file-modified dates?

Probably not 100% right but better(?) than  nothing...
Honu Send private email
Tuesday, April 11, 2006
 
 
Yes, but we also had to consider the possibility that someone would create a new version, make some changes, and then ultimately reject that version as unworkable. (Source Control would simply document these as abandoned forks.)

It never occurred to us to check the waybackmachine because this was an internal corporate site, and there are a lot of files that don't manifest themselves to the user (specifically, CGI internals). That said, being able to compare the code with the way the site appeared on a given day, is potentially a very useful tool and I'll try it next time.
TheDavid
Tuesday, April 11, 2006
 
 
> Source Control would simply document these as
> abandoned forks

Since a decent source control would allow you to restore the complete system to a stable state prior to the fork or to any prior system snapshot or label, it does a little more than just "simply document" the changes.
Jussi Jumppanen
Wednesday, April 12, 2006
 
 
It's doubtful you have everything, even if you could figure out the file names.

How likely is it that at some stage somebody did a minor edit ro index.html, without bothering to take a copy under another name???  I'm guessing: highly likely.
S. Tanna
Sunday, April 16, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz