Here is summary of possible ways to copy sites in Sharepoint. It can be useful if you make investigation of existing tools. I recommend to read this article which explains several ways to copy sites using Sharepoint Designer and Sharepoint UI commands.
- Web packages (.fwp files) – see http://office.microsoft.com/en-us/sharepointdesigner/HA100819231033.aspx
”Use this feature when you want to share or reuse Web pages or a site, list, or library structure. With Web packages, you can either package an entire site or choose the specific pages, lists, or libraries that you want. Web packages are a great way to duplicate site structure, but they cannot include list data, subsites, or security and permissions settings. Also, a Web package can include custom link bars. After you create a package, you can import and deploy the file into as many Web sites as you want”
- Content migration packages (.cmp files) – see http://office.microsoft.com/en-us/sharepointdesigner/HA100699391033.aspx
”Use this feature when you want to make a backup copy of an entire site or subsite, or when you want to move an entire site or subsite to another server or location. Unlike Web packages, content migration packages include list data, and you cannot choose to include only specific site elements. Note that you may lose some customizations or settings in the process. For example, the backup file does not include workflows, alerts, and properties stored at the site collection level. The backup file also does not include the Recycle Bin state or objects inside it. To use Backup and Restore, you must have administrator permissions to that site”
- Site templates (.stp files) – see http://office.microsoft.com/en-us/help/HA101577791033.aspx?pid=CL100605171033
”Use this feature when you want to create multiple Web sites that start with the same base content or site structure. For example, you may want all of the subsites created on a site to have a similar site structure, look and feel, and even content. You can do this by saving a site as a site template and adding it to the Site Template Gallery so that anyone can use the site as a template. Unlike Web packages, site templates can include list data. You must have both administrator permissions to the Web site where you want to create the site template and write access to Site Template Gallery”
- Use backup/restore commands of stsadm.exe utility (http://technet.microsoft.com/en-us/library/cc263441.aspx and http://technet.microsoft.com/en-us/library/cc262087.aspx)
Here you can choose whether you want to backup site collection, database, web application or the entire farm.
- SPImport/SPExport API
See great posts of Stefan Goßner for more information. This way however has a known problem that with RetainObjectIdentity = true it works only for sites which are children of root site. In further posts I will describe why it happens and show workaround for this issue
- Stsadm extension commands from Gary Lapointe
See details of gl-import2 command
I will update this post as far as I will investigate new ways to copy sites and content in Sharepoint.