Welcome, Guest. Please Login
 
  HomeHelpSearchLogin FAQ Radified Ghost.Classic Ghost.New Bootable CD Blog  
 
Pages: 1 2 3 
Send Topic Print
Apache file-extention mojo (Read 51611 times)
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Apache file-extention mojo
Apr 20th, 2008 at 12:48am
 
Sent WiredTree tech sppt the follow ticket today:

Quote:
Hi.

I'm sure you guys have seen how some sites reconfigure their file-extentions in cool, customized ways, such as:

http://arstechnica.com/index.ars

http://arstechnica.com/news.ars Heard this was done in Apache, a black-art about which I know nothing.

I would like to configure my home page:

http://radified.com/index2.html

to be synonymous with: index.rad (cool, huh?)

but I have zillions of pages currently pointing to index2.html .. so that file would have to point to index.rad

Is this something you guys could help with?

Or something I need to research on my own?
 
WWW  
IP Logged
 

Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Apache file-extention mojo
Reply #1 - Apr 20th, 2008 at 12:51am
 
Response:

Quote:
This would be something you would have to research on your own.  A point in the right direction would be using mod_rewrite to alias .rad to any extension in question.

You can rename all of your files to .rad and we can add that handler in to apache but overall thats a huge pain.  Mod_rewrite will be much cleaner.

Magoo? Nigel? Help?
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Apache file-extention mojo
Reply #2 - Apr 20th, 2008 at 1:45am
 
Q: What is the chance I screw something up and render the entire site useless?

Quote:
Just remove the mod_rewrite rules from the .htaccess file and you will be back to normal.
 
WWW  
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #3 - Apr 20th, 2008 at 7:33am
 
Well, you have lots of options here, depending on where you put the config and how you want to do it. By the way, the advice you were given about renaming or copying the files from .html to .rad is incorrect, it's hardly difficult (it's a simple command) but the real issue is long-term site maintenance; it's something that becomes a problem long-term as you edit pages.

There are lots of subtleties with mod_rewrite and whether the directives are present in a .htaccess file or globally in httpd.conf - if you've got AllowOverride already configured in the httpd.conf so that you can set mod_rewrite directives in the .htaccess files, then you just need the .htaccess file to contain these two lines:

RewriteEngine On
RewriteRule (.*)\.rad $1.html

Just as a side thing, the best advice I can give you with learning web configuration and if you want to experiment with dynamic content is to get a private copy of Apache on which you can experiment; it's your choice whether to grab a copy of something like XAMPP or run it on the same OS as your webhost uses. Most web development issues are platform-independent so it's much of a muchness except that running the same configuration as your main host means that it's just a matter of copy things up from the test environment to publish them live.

Having a private test server doesn't matter much for static content, but if you have any interest in going into dynamic content (writing PHP scripts, for instance) then it's far better to develop on a local instance.

The other thing that I recommend is using a source-code control system like Subversion for the website as well, so that your test copy of Apache (especially if it's in a VM) is completely disposable, and you can recreate an entire website and its configuration just by checking out a working copy.
 
 
IP Logged
 
MrMagoo
Übermensch
*****
Offline


Resident Linux Guru

Posts: 1026
Phoenix, AZ (USA)


Back to top
Re: Apache file-extention mojo
Reply #4 - Apr 20th, 2008 at 9:08am
 
I agree with Nigel that mod_rewrite is the way to go if you want to do this.  The only thing you have to think about is that you can't leave it on very long and still have the option to turn it off.  Once people start linking to index.rad, you will break their links if you turn mod_rewrite off.

I also agree that its REALLY nice to have a development server to play around with.  You can test everything without messing up your actual website.  Most of this stuff isn't much fun to read about but its fun to play with on the server.  Doesn't take anything special - any old 500 MHz computer wtih 512 MB ram will run a command line server sweetly.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Apache file-extention mojo
Reply #5 - Apr 20th, 2008 at 10:09am
 
Hi. Thanks.

Quote:
if you've got AllowOverride already configured in the httpd.conf

From my host sppt:

Quote:
Its always set to AllowOverride All on cPanel servers.

Quote:
you have lots of options here

That's what I'm looking for. Do I know the options and their respective pro's and con's?

Specifically, here's what I know so far .. is that I have a file in root directory named index2.html, which I would like to be/make synonymous with index.rad .. for purely cool, cosmetic reasons .. and as a learning experience.

I don't use any *.php files, except for one where I was .. playing/learning about the basics of PHP. PHP will come later, but I still have mastering more CSS on my plate.

Learning subversion sounds interesting for the future, but may (since we are still primarily static) increase my learning curve too much too quickly. (Especially when I still have lots of legal stuff I'm dealing with here .. of a non-website nature.)

I already have a copy of WAMP-Server installed on my laptop:

http://www.en.wampserver.com/

.. tho I have v1.7.1 installed, and I see that WS v2.0b has been released. I think my host is good about maintaining updated versions of the OS/software installed. Looks like I installed WAMP ~ a year ago, last May:

http://blogs.radified.com/2007/05/wamp5_root_password_mysql_database_phpmyadmin....

Do you think that will be okay? (WAMP vs XAMPP, v1.71 vs 2.0b) Our server uses Linux - CentOS 5, Apache 2.2.8, MySQL 5.0.45-community, PHP 5.2.5.

Is there any other info you need to help me make a wise decision?

I have zillions of pages currently linking to index2.html. Would I have to keep *duplicate* copies of BOTH index2.html and index.rad maintained? That would suk. I am familiar with maintaining two different copies of the same page and don't like it at all.

I would like to be able to delete index2.html,and simply update index.rad .. tho I would always need a pointer from index2.html to index.rad, since I could never be sure I update every last file which contained a link to index2.html, and search engines all know index2.html (and not index.rad).

So, I'm trying to get a feel for the details of how this would work.

Quote:
the real issue is long-term site maintenance; it's something that becomes a problem long-term as you edit pages

Can you spell this out for me?

My other question is .. does this affect ALL *.html files? Or just the html files in the directory containing the htaccss file? Ideally, it would (at first) affect JUST the index2.html file (maximum control)

Does it turn index2.html into index.rad or do I actually have to upload a file named index.rad?

That's enuf questions for now (but I have more). I apologize if they sound silly. But I am clueless.
 
WWW  
IP Logged
 

Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #6 - Apr 20th, 2008 at 7:47pm
 
I'll reply in multiple messages since I have to grab moments of free time here and there, but I'll get to everything eventually.

Rad wrote on Apr 20th, 2008 at 10:09am:
Learning subversion sounds interesting for the future, but may (since we are still primarily static) increase my learning curve too much too quickly

Fair enough, and I agree, but let me just say that getting into the habit of using a change-management system is one of those things where the benefits really accrue over time. It's sorta like brushing your teeth, in that doing so each day doesn't make a huge difference but over time it adds up, even if you're just working solo.

The thing is that there's no harm in starting - when I got into the habit about 20 years ago with RCS, all it took to start was basically the same thing you have now with Subversion; install it, do an initial checkin, and largely you can forget about it since all you do it periodically check more stuff in and never look at it. The fact that you're capturing that change history means that when you do have the time to start learning more about the change-management tools, you'll have some valuable history already captured.

One particularly nice thing is that Subversion clients typically have all the tools to work locally with a repository, so (like RCS back in the day) there's no need to set up a server to get started. A particularly fun one to use on Windows is TortoiseSVN, which gives you all the tools added to the Windows desktop as a really unobtrusive context menu extension.
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #7 - Apr 20th, 2008 at 9:52pm
 
Rad wrote on Apr 20th, 2008 at 10:09am:
Do you think that will be okay? (WAMP vs XAMPP, v1.71 vs 2.0b) Our server uses Linux - CentOS 5, Apache 2.2.8, MySQL 5.0.45-community, PHP 5.2.5.

It should be fine in terms of WAMP vs XAMPP, and for basic stuff there's not a huge difference between Apache 1.x and 2.x, although it's probably best to use something based around Apache 2.x since the world is basically switching to it.

This is where VMs shine; if you want to experiment with Apache2 on a regular CentOS distro (or any other really, there's basically no difference been Apache2 installs on any UNIX, with the notable exception of MacOSX which has radically different conventions for where things go and how services are configured) just download an appliance you can use with VMWare Player or create your own in something like VirtualBox. It's not either/or any more when running a whole 'nother OS in a sandbox is as easy as double-clicking a shortcut.

It's probably not a good use of your time installing any Linux distro on an old physical box to start with, unless you have a burning need for a server that is running 24/7 separate from your primary Windows desktop - use VMs instead. It's vastly more convenient, almost certainly way faster (given that your main desktop is probably multicore), you can get preinstalled VM appliance versions of every distro imaginable - you can experiment with and or all of the distributions that way until you decide on one you particularly. Even if you have a favourite client OS, at that point it's still usually better to stick with VMs - if you install your own with VirtualBox, for instance, the free version of that lets you take snapshots like the paid version of VMWare Workstation, and snapshots mean that you can play with absolutely anything at all and just insta-revert the snapshot if it doesn't work how you like.

[ This is what makes having an SVN repository on your primary machine (VM host) particularly helpful. Since I periodically need to do stuff that runs on a variety of Linux distros *and* MacOSX *and* different Windows editions *and* DOS *and* OpenSolaris, and I just rotate between them. Fire up one, sync from the repository, work for a while, commit back, fire up the next OS, rinse, repeat. Rather than dealing with the tedium of continuously patching them all since there's so much version churn, it's honestly easier to build them and keep them stable, and just build a new VM periodically as new major releases of various things drop out. ]
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #8 - Apr 20th, 2008 at 11:54pm
 
Rad wrote on Apr 20th, 2008 at 10:09am:
I have zillions of pages currently linking to index2.html. Would I have to keep *duplicate* copies of BOTH index2.html and index.rad maintained? That would suk. I am familiar with maintaining two different copies of the same page and don't like it at all.

That's just one strategy, and it's more a temporary one. The thing with a re-organization like this is that it takes time; time to plan, time to make the changes, time to test, and then finally deploy. The problem isn't dealing with the before and after of the re-org, it's that it's hard to stop the world completely during that time. So a really good transition plan still lets you make content edits during the transition and not have them wind up either lost or fouling up the transition.

[ Incidentally, another plug for change-control. Subversion has the rare virtue amongst change-management systems of understanding things like file renames natively. If you have two branches, say a "live" branch in which index2.html exists as now, and an "experimental" one in which it has been renamed to index2.rad, you can maintain the "live" one indefinitely while you figure out the experimental one - as long as you tell Subversion about the renames, it will know that the two files with different names represent the same underlying thing and can help propagate edits between the two. ]

Now, in UNIX the traditional tool for this kind of process when applied to static content is the symbolic link; you'd migrate in stages by first (using a simple shell script) creating symlinks under the new name for all the existing files, so that during the transition time either name works. Then you can migrate the internal hyperlinks so that you consistently use the new name form, and finally you exchange the real file and the symlink (again, a simple shell script). At that point the symlinks can sit around as long as they need to.

What you're doing using mod_rewrite is essentially the same thing as a symlink, it's just that because mod_rewrite can work on patterns, it means that Apache is capable of doing the same thing via the RewriteRule patterns as a shell script would have done if you were doing it via the filesystem. Also since Apache is doing the work at the level of the URL namespace, it's a technique that works on non-UNIX platforms, and you don't have to worry about clearing out the individual redirects at the end either. The overall process isn't actually that different, it's just different mechanisms.

Rad wrote on Apr 20th, 2008 at 10:09am:
I would like to be able to delete index2.html,and simply update index.rad .. tho I would always need a pointer from index2.html to index.rad, since I could never be sure I update every last file which contained a link to index2.html, and search engines all know index2.html (and not index.rad).

A word of warning about that; if you want to physically use .rad, remember that not only will you have to teach Apache that .rad has a mime-type of text/html (which is easy enough using the AddType configuration directive), but you'll face that same problem with any tool you ever edit or associate the content with in future.

With Windows at least it's not too painful to edit the file associations so you can associate .rad with some editor, but you'll also need to be confident that whatever editor you use is going to be happy with .rad as HTML content, and there could be well be little annoyances that plague you from now until doomsday in all kinds of tools.

For instance, since I have a copy sitting on my desktop to try, I just tried KompoZer. It's got a hard-wired notion of what file extensions mean HTML (so the default open dialog won't show you any .rad files until you type in *rad, which you'd need to do every single time), and it really gets unhappy if you ask it to work with a file that has a non-HTML extension. Visual Studio lets you customize the editing experience you need, but you can't customise the File Open dialog filters so it knows that ".rad" is web content.

That's just a couple of tools, and maybe those don't matter to you, and maybe all the tools that do matter to you (or will do in the future) will be able to be taught to associate .rad with HTML content. Even so, it's worth bearing in mind that there's always a pretty big risk whenever you move away from any really well-established convention.
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #9 - Apr 21st, 2008 at 1:49am
 
Rad wrote on Apr 20th, 2008 at 10:09am:
My other question is .. does this affect ALL *.html files? Or just the html files in the directory containing the htaccss file? Ideally, it would (at first) affect JUST the index2.html file (maximum control)

What tends to happen during Apache's URL-processing pipeline is that it traverses the URL component by component; at each stage, it checks the .htaccess file for the part of the URL it's resolved to something, and if that causes a rewrite it can affect the rest of the URL. Each .htaccess file can't generally change any part of the URL that's been processed in getting to the current directory, but it can affect anything to the right within the URL.

So, the .htaccess file in the root directory can apply rules that apply anywhere. For instance, it so happens that the regular expression I gave you turns any URL ending in .rad into a .html one, even in subdirectories, because the .* pattern in a regular expression means "any characters" and that will consume the entire rest of the URL in order to find a match - that is inside parentheses though, so the $1 on the right-hand side which says how the URL is rewritten puts them all back.

So, if we start with http://host/foo/bar/index.rad, by the time the .htaccess in the root gets to go, we're left with foo/bar/index.rad (Apache having already processed the host part) and that gets rewritten to foo/bar/index.html, because the .htaccess file in the root dir has the first chance at rewriting the URL and the example rule I gave you matched it. After doing that, it then resolves the "foo" and processes the .htaccess file in that directory, which can then add more rules, and then does the same thing with "foo/bar" (looking for .htaccess, processing any rules in it, etc), and finally if there's an actual file called foo/bar/index.html it'll serve that up.

It's all down to either wrangling the regular expressions that match URLs so they capture exactly the amount you want, and/or adding RewriteCond rules that look at other things to decide whether the rewrite occurs. If I changed the regular expression to being this:
 RewriteRule ([^/]*).rad $1.html
this means that the pattern only matches things that don't have slashes in them. However, this pattern will look throughout the whole URL to find a match, and so what it'll do is that it'll skip over everything in the incoming URL up to the last /, and then the pattern in the parens will match the last part of the path before the .rad - so in this case, the substitution will end up transforming foo/index.rad into index.html and strip out the path completely.

I can use the "anchor" character in the regular expression to insist that the pattern not go romping down the whole rest of the URL, like this:
 RewriteRule ^([^/]*).rad $1.html
where the leading ^ is a metacharacter that means "start of string", so this will only match files in the current directory and leave other URLs referring to subdirectories alone; this rule will match http://host/foo.rad and convert it to foo.html but it will leave http://host/foo/bar/foo.rad completely alone.

A RewriteRule that just did this:
 RewriteRule ^index.rad index2.html
since it has no actual pattern characters in the pattern, just matches that one file, and the use of the anchor ensures that this particular pattern only applies in the root and won't capture anything in any subdirectories.
 
 
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #10 - Apr 21st, 2008 at 2:14am
 
Rad wrote on Apr 20th, 2008 at 10:09am:
Does it turn index2.html into index.rad or do I actually have to upload a file named index.rad?

The first example rule I gave you matches incoming URLs ending in .rad and converts them internally into .html, so index.rad got rewritten to index.html and then Apache (re-)consulted the filesystem to see if that existed. It would then serve up whatever was in index.html, and it would also rewrite xyzzy.rad into xyzzy.html (and so forth) because I used a quite general pattern. Note that if the rule ended up mapping into something that didn't exist, the default 404 ErrorDocument would tend to report the rewritten URL, not the original one (this is a quirk of .htaccess files, explained in the tech notes).

If you want to go the other way, just flip around the pattern and substitution: doing it just for the index2 case gives us
 RewriteRule ^index2.html index.rad
will make Apache turn index2.html into index.rad which Apache then tries to serve out of the filesystem.

Now, the final quirk is that Apache generally gives higher priority to static files than rewrite rules in .htaccess files; if we had a RewriteRule that converted index2.html into index.rad, but there was a file present called index2.html, Apache would find that and serve it up before it went looking for rewrite rules.

This is a strange quirk that results from the internal ordering of the operations in Apache and how far it's had to process the URL to convert it into a filesystem path before even getting to the stage of looking in a .htaccess file - see the technical notes for some other quirks resulting from this. Rewrite rules that have been hoisted out of .htaccess into the global httpd.conf don't have to live by the same rules, but then you have the different problem of usually needing to restart Apache if you tweak the httpd.conf since it caches what's in that basically forever (whereas it processes the .htaccess files only on-demand and doesn't cache their content very much - so you can change them at will but they get reprocessed a lot).
 
 
IP Logged
 

Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #11 - Apr 21st, 2008 at 3:35am
 
All this is assuming, by the way, that you're going to keep the content much as it is now (static HTML), which I wouldn't. What would I do?

Well, your study of CSS gets you a long way toward that. Once you are doing all the fancy styling from CSS, rather than using table-heavy layout, you really don't need much more than a nice-to-edit syntax like Markdown to do the main content generation and most everything else is custom CSS. Honestly, HTML is an awful format for content - I'd pretty much always choose to use a much saner source syntax, and let a Wiki-type engine with a reasonably sane basic markup engine (e.g., DokuWiki if you want to use something off-the-shelf) handle converting the source syntax into HTML.

That way you get through-the-web editing, decent content change history (HTML makes for butt-ugly diffs), the ability to totally customize your internal URLs (because they use a separate, much simpler syntax than external references), and all kinds of good stuff even if you don't use the rest of the Wiki-type functions.

If you don't want to serve the content dynamically (if you're really scared of the resource usage, say), you can still get the benefits of using something like a wiki yourself - keep your wikified environment on a private server, and have it publish the entire thing to static pages that you sync to the public server.

Of course, there's the problem of getting your existing content into such a system, but depending on the system there are ways and means, and actually with many of these Wiki-type systems they rely on mod_rewrite to convert incoming URLs into CGI Queries so (as discussed above) any existing static content takes priority over dynamic content, meaning you can convert at your leisure.

For our internal DokuWiki I wrote some Javascript that converted HTML to wikitext for page import, and for grins since I recently wanted to host some Open-Source projects on Google Code but their wiki system is pretty awful, I wrote some JavaScript that actually does the whole wiki->HTML conversion in the client browser, on the fly. Since it's JavaScript, it runs not just in a browser, but also in Windows Script host so it can do bulk operations on entire directories of source files. Unfortunately I'm stuck since having done that much, it's been taking months to get it signed off as a personal project (since in theory I need explicit permission before I start in order to avoid it becoming Symantec's property).
 
 
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Apache file-extention mojo
Reply #12 - Apr 21st, 2008 at 12:47pm
 
Quote:
but I'll get to everything eventually

Thanks, Nigel. I feel fortunate to benefit from your experience/expertise. Your messages are rich, so I'm reading them multiple times, to digest.

Quote:
The thing is that there's no harm in starting

You make a compelling argument. Downloading now. I like that the TortoiseSVN subtext contains the word "cool". My biggest hesitation is that I know nothing about SVN, which makes it seem complex, and therefore time-consuming to learn. You seem to suggest I can start now and learn as I go .. a concept I find more palatable.

Quote:
One particularly nice thing ... no need to set up a server to get started.

I like that. This seems to imply that I will be using a server "out there" somewhere, then? No? Update, In the help I found this:

Quote:
http://tortoisesvn.net/node/90

Tortoise SVN can create a respository for you, as long as its a file based one. I am not sure if it can create a server based one.

If you are using Tortoise SVN in file based mode, just right click on a folder you want to turn into a repository and select "Create Repository here" from the Tortoise SVN menu.

The phrase "change management" brings up philosophical implications, when applied to human beings.

I will read & respond to the rest of your replies in separate posts.
 
WWW  
IP Logged
 
Rad
Radministrator
*****
Offline


Sufferin' succotash

Posts: 4090
Newport Beach, California


Back to top
Re: Apache file-extention mojo
Reply #13 - Apr 21st, 2008 at 2:50pm
 
Quote:
best to use something based around Apache 2.x

My version of Apache on WAMP 1.7.1 installed last May = Apache 2.2.4
PHP 5.2.2 (this site uses 5.2.5), MySQL 5.0.37

Quote:
just download an appliance you can use with VMWare Player 

Had to look that up: http://www.vmware.com/products/player/

Do I need VMWare to use VMWare Player?

The VM world is another place where research is required to get up to speed, but I've noted how you and others (Pleo?) have praised it, so it's on my list of things to learn. As of right now however, I'm still foggy on how it works, exactly.
 
WWW  
IP Logged
 
Nigel Bree
Ex Member




Back to top
Re: Apache file-extention mojo
Reply #14 - Apr 21st, 2008 at 3:08pm
 
The way Subversion is set up, where the "repository" - the master copy of the history of everything you put into it - lives is identified by a URL, and that URL comes in all kinds of variations.

Subversion can work with dedicated Subversion servers (if you ever install Cygwin, for instance, you get the same command-line version that you get for UNIXes, which includes a server called "svnserve") that use a custom protocol and uses URLs of the form svn://host or svn+ssh://host

You can also export the repository over HTTP and HTTPS using an Apache2 plug called (as you'd expect) mod_svn, and that means you work with things in regular http: or https: URLs - Google Code Projects use this, as does SourceForge and other hosts all over the web.

Or, you can just refer to the place the repository is stored on a local disk using a file:/// URL. And you can do all three, in fact.

To get started using TortoiseSVN, make an empty directory somewhere (say, C:\svn) and right-click on it. One of the context menu options is "Create repository here...", and that populates an empty directory with a blank Subversion database.

From now on, that means a URL like file:///c:/svn refers to the whole repository, and URLs like file:///c:/svn/stuff/working/ refer to a subdirectory within the repository.

To load stuff into a repository, right-click on a directory and choose "Import...", then enter a URL where you want it to go - the first part of the URL pointing at the repository, and the rest picking a (virtual) subdirectory within it, so file:///c:/svn/ and then tack on anything you like. There are all kinds of "proper" conventions for what to call things, but those are just conventions and Subversion doesn't actually care what you do that much.

Now if you right-click on an empty folder or the desktop, you can "check out" something, and pick some of the content you checked in. What happens is that it gets copied out for you to then start editing, and in addition the Subversion client remembers where you got it from, and what version you have.

When you have a working copy subdirectory that contains stuff which it knows is all up to date, Tortoise shows the subdirectory with a big green tick. If you edit a file, it changes to a red tick to let you know you should update the content at some point via a "check in", and if you add new files you can tell it to grab all the newly-added files and throw them in as well.

Whenever you make a change you can put a summary note describing what you did so that you can figure out what you were doing (pretty handy when you're looking at stuff in a year's time), and that's pretty much all you need to know for starters. You can have as many working copies of things as you like, and you can just delete them if they don't contain anything you want to keep.

As long as all you do is change and add things, that's all you need to know. There's plenty of useful things you can do just with that, but they'll come about once you start changing things - you can use the "diff" tool to let you know what you've changed in a file recently (since it was last checked in), and the "Show log" tool to view the history of all the edits you've made as you check them in, and you can wind things back to not just the last version, but any earlier one.

It's a trivial thing, but like I said it's just a habit. It's like making little postings to a personal blog as you make changes to the files.
 
 
IP Logged
 
Pages: 1 2 3 
Send Topic Print