Versioning for Websites - html

I am trying to find the best solution for versioning files on a large scale of websites, network drives, etc... shared among 40+ developers. We have roughly about 22 servers that each contain about 75 DNN websites hosted by PowerDNN. Common software shared among all developers are Adobe CS5 suite so I am not sure if there is something that even integrates into this software that would allow us to version. I am aware of a couple of the ones out there now (visual safe source, CVS, GIT) but not sure if these are the best solution for such a large amount of data. Network drives would contain PSD's, Text documents of site content, etc...
any help is appreciated, thanks
also something i forgot to mention, something that also allows to check in/out files for example a style.css for website 1 on server 1 is checked out then back in and a week later checked out and you are able to compare changes from last checkout and who made those changes
thanks again

Consider git at least if your files are mostly text and not binary (like psds and stuffs). Then you can create separate repositories for separate projects and by doing this you should have no problem with the amount of data that you have.
Visual Sourcesafe and CVS are old (read: bad) and not as flexible and powerful as git.

Check out Team Foundation Server. There are plugins actively being made to integrate TFS with other programs. Some plugins are free and some are paid.
http://www.codeplex.com/
Warning: TFS is massive and the learning curve could get steep.

Related

How do I open a directory using Html when the files and html are all on a DVD

I work for a large company with agents all over the U.S. We want to upgrade our agents to Open Source office suite (Apache Open Office) from the chaotic mismatch of different versions used now. Problem is many of our people are barely computer literate.
I need to build a menu in Html to install the proper version on their systems from a DVD I have downloaded the files onto.
I can code some Html and some java but not a lot. It would help if it were cross browser since some use Macs but most use PCs.
I have researched for days and find many references to no access from the Web bit surely there is a way to do it offline?
Thanks in Advance.
I'm not sure that HTML is really what you want here. HTML is used to create web pages, but it's not a programming language and is not well suited to executing commands or performing tasks. JavaScript is the most common programming language used in web browsers, but you will have problems accessing a user's local file system for security reasons.
The best option I can think of is to give the installers appropriate names based on OS, and include documentation that clearly explains to users what they need to do. HTML may or may not be suitable for the documentation depending on your needs.
I want to thank everyone for their help.
Do to time restraints I believe the fastest solution is to do a simple text document in several forms describing the file choices and links to the files.
This way may not be eloquent but it is efficient.
Thanks for your time.

Continuous Integration without the "Build"

Our group uses Visual Sourcesafe as a file repository for all of our "content" (HTML, CSS, Javascript, JSP). None of it requires building or compilation but we would like to automate the copying of it to a Unix dev server upon check-in.
I have used Cruisecontrol.NET in the past for CI at other companies but it was for .NET. What would be the easiest way to achieve our current requirements? Would using CruiseControl.NET be overkill or even a good idea? Thanks in advance.
-Sean
This sounds like overkill for a CI tool.
Visual SourceSafe and other version control systems should have hooks allowing you to automate a simple file copy operation.
From http://msdn.microsoft.com/en-us/library/aa302175.aspx
Use events, such as OnBeforeCheckout
or OnAfterCheckIn to automate your
process.
Whether this makes sense for you depends on a couple of factors. If you are talking about a large, geographically team with only change based deployment then yes, those are valid concerns. If you only have a few local developers and you deploy the world on each copy operation, then no, I don't think you'd need a CI tool.
This is not to say other reasons may influence you to use a CI tool, testing for instance. Your problem might also be solved by running a polling script on the Unix box to sync the source control with the dev server. I guess the main point is, if you are deploying all non-compiled software, why do you have a separate source control and dev server? You're deployment can be done by a source control tool. If it is only for backup, there are plenty of existing solutions for that problem.
Sean,
Our AnthillPro customers do this kind of thing pretty frequently (and we even do it internally when new content is committed for our website). It's a really good idea, totally appropriate for a CI tool, and you can get quality feedback if you wire in some automated functional / regression tests.
Eric
You could try using Hudson http://hudson-ci.org/
It is easy to configure, is completely GUI (unless you want to go into the details), and has a plugin for Visual Sourcecafe http://wiki.hudson-ci.org/display/HUDSON/Visual+SourceSafe+Plugin
While CI would probably be overkill for what you are trying to do, since Hudson is all GUI and easy to use, you would not spend a lot of time just trying to configure it.
Hudson also has plugins for copying stuff over to other systems, and so it would be easy to deploy your content to another system.
If you are worried about the process, get in touch with a hosted CI provider, such as MikeCI, a quick message on their support board will get you the answer. I don't see why triggering a "build" can't be replaced with copy and paste!

Are there any inherent benefits or drawbacks to choosing Google Code vs. SourceForge vs. Codeplex? [duplicate]

This question already has answers here:
Where to host an Open Source Project: CodePlex, Google Code, SourceForge? [closed]
(4 answers)
Closed 8 years ago.
I've got a couple of different projects that I'd like to post up as open source. I've been trying to decide which of the three big open-source project hosting sites makes the most sense, or if I should just host it myself.
Are there any inherent drawbacks or benefits to these three? Is there a "best" place to host a project? Do different sites make more sense for different kinds of projects?
It's really a matter of personal taste. Google Code has a cleaner, simpler interface. Some also like the simplicity of creating projects, the ability to choose between Subversion and Mercurial, and also the Trac-like SCM-integrated wiki-style pages.
The only real criteria other than personal taste are: repository type and licensing. Sourceforge provides Subversion, Mercurial, Bazaar, Git and CVS. Google Code provides Git, Mercurial and Subversion. GitHub and Gitorious provide Git. I've never looked at CodePlex, so I don't know what they offer. Sourceforge hosts projects from a very wide range of open source licenses... it's actually quite daunting choosing a license from their list.
Google Code supports half a dozen licenses: Artistic/GPL, Apache, Eclipse, Gnu GPL, Gnu LGPL, MIT, Mozilla, New BSD. You can see them in the drop down of a new project: http://code.google.com/hosting/createProject
Don't forget github!
Wikipedia might be of help: Comparison of open source software hosting facilities
I think there are two angles to look at this, what development features each site offers, and what audience does each site reach.
From a development perspective, if you are interested in DVCS (Git or Mercurial) then CodePlex, GitHub, or Bitbucket are your best options. Google Code and SourceForge support DVCS as well, but their support for DVCS is not great. If you want Subversion, then Google Code is really the best Subversion host although SourceForge is reasonable, and CodePlex offers support for Subversion clients as well. Other core features (e.g bug tracking, forums/mailing lists, wiki, etc) are offered by all three but have some differences so perhaps more personal preference there.
From a site audience perspective there are big differences between the sites that can be important to your project. For example, if your project runs on Windows or other Microsoft technology, then CodePlex has a much higher concentration of Windows users so you are going to get higher downloads. For similar reasons, if you would like other developers to contribute to your project, CodePlex has a much higher concentration of Microsoft developers so you are more likely to get contributors. If your software runs on Linux then Google Code or SourceForge have a much larger Linux user base so you'd get more downloads/contributors there. If your software runs on Mac, I'm not as sure but I think GitHub might actually have the edge there.

How to open source set of plugins

(my apologies for the non-specific wording of the question title, and for liberal use of öpen source" when I actually mean "project setup at SourceForge")
We have recently open sourced a 3D modeler we'd been selling for a couple of years, with the main goal of keeping the application alive. We setup shop at SourceForge.net, and are now working towards a process resulting in a steady flow of binary releases. So far, everything is swell.
However, besides the main application, we had also developed a couple of plugins (mainly for different import/export formats). Currently, these are still closed source, but we would like to open those up as well (3rd party plugin developers can take care of their own or donate and open the source). The question really is, should our plugins be hosted as a project on their own or not?
The options I see are:
Add the plugin sources into a subfolder of the SVN sources
Create a separate project for the set of plugins
Create a seperate project for each individual plugin
Which setup is the most practical and/or common, and how should I deal with the binaries?
When the application was still closed and commercial, it was kinda important that the plugin binaries could be updated seperately fom the main application, but now that everything is open and updated frequently, that's not so much of a big deal anymore. Also I'm not sure I want to bother contributing developers with a whole bunch of plugin sources they care nothing about as part of the main project.
Add the plugin sources into a subfolder of the SVN sources
I think that is a good idea if you don't have too many plugins. You could create a folder structure as shown at the end of my answer in order to manage plugins independently. But in this case you won't have fine control over SVN access.
The advantage is that you only have to maintain one project website (if you create one at all).
Create a separate project for the set of plugins
That's what Notepad++ does, for example. Their plugins are hosted on a separate SourceForge project. Having one download page full of plugins and another download page full of binary releases of your software improves readability. But don't forget to mention on the project web page that there's a separate plugin project.
It also has the advantage that you can manage the project web sites independently. For instance, you could put other users in charge of caring about the plugin site (if you find somebody who wants to maintain them).
Create a seperate project for each individual plugin
Not a good idea, maintenance will be harder this way, as you'll have multiple projects, repositories and project websites.
But it has an advantage though: You can be more fine-grained in granting people access to developing the plugins. For example, users A and B are allowed to work on plugin X, but not on plugin Y. With separate SF projects, this is easy to achieve. Same applies to the project web sites, of course.
So, as a conclusion, I would say that the more you care about SVN access rights and the more plugins you have, the more it makes sense to create one or more separate projects for your plugins.
Example SVN structure from #1:
/modeler
/trunk
/branches
/tags
/modeler-plugins
/plugin-x
/trunk
/branches
/tags
/plugin-y
/trunk
/branches
/tags

Buildfarms : Options

We use Incredibuild here to compile our code in a distributed fashion. I was wondering if there are any open source (or free) alternatives to use on a home network?
Failing that, are there any other simple solutions with good integration with Visual Studio out there?
EDIT: I should say that I am quite happy to get my hands dirty and manually configure everything on each machine should that be required.
I can't look past TeamCity as a CI environment - among other features it allows multiple build agents to be linked together in one build grid.
Oh and it also has excellent integration with VS and SubVersion. And it's free to use, up to a maximum of 20 build configurations and 2 build agents.