James Lockman's Technical Blog

Posts tagged "version control"

Like many Mac users, I upgraded my Mavericks machine to Yosemite. While the upgrade should be smooth for most things, Adobe Drive requires an update due to changes in the way that Yosemite manages file systems. Since Drive provides low-level file system services and the hooks to those services changed, the old installation needs to be removed and reinstalled in order for Drive to work properly.

The process is simple. Browse to the Adobe Drive Installation Page and download two things: Adobe Drive and the AdobeDrive5UninstallUtility.dmg. Mount the AdobeDrive5UninstallUtility.dmg, and then follow these steps:

Open Terminal

Type “sudo ” (include the space after sudo)

From the mounted AdobeDrive5UninstallUtility.dmg volume, drag UninstallUtility.sh to Terminal so that your command in Terminal looks something like:

/Volumes/AdobeDrive5-UninstallUtility/AdobeDrive5-UninstallUtility
OSX 10.10.3 release made changes to a few systems calls.
Manually altering Adobe Drive's Installer Hooks to be compatible with new release...
Done with file replacements!

Quit Terminal

You can now mount AdobeDrive5_0_3-mul.dmg and install Adobe Drive successfully.

Customers who use Adobe Drive with Adobe Experience Manager may also need to install a package to ensure compatibility with Drive 5.0.3. Specifically, if you are using Drive with AEM 5.6.1, AEM 6.0, AEM 6.0 SP1, AEM 6.0 SP2 then you need to install a patch on your AEM server. The patch is delivered as an AEM Package, and you can install it on your Author instances as necessary. If you use AEM 6.1 or higher, then you do not need to install this package.

One last thing: if you will be using Adobe Bridge CC in the workflow (and who doesn’t?), ensure that you keep Adobe Bridge CC up to date to avoid unexpected crashing issues. If you are in a managed deployment environment, then contact your system administrator to ensure that you have the latest Adobe Bridge CC installed.

I use Outlook on my Mac for email and calendaring. While I have access to Office 365 and the web versions of the apps that comprise it, I am more comfortable using the desktop application. In addition, I use email rules to help manage the large volume of messages I receive every day. Since I get a lot of email with a lot of attachments, my Outlook database gets large very quickly. Also, it goes corrupt from time to time. When I rebuild the database, very often my mail rules get confused and they need to be adjusted to point at the appropriate target folders. This is annoying. I decided that I needed to come up with a plan to make it easier to recover from database failure, and this article provides a solution, or at least some security if not a true solution.

Creative Cloud offers desktop file syncing for customers who install the Creative Cloud Desktop app. This works much like Dropbox, in that there is a folder on your computer that the CC Desktop app syncs with your CC folders online. This is a very handy feature for sure. You can learn how to enable desktop file syncing here. You can also share a folder with one or more other Creative Cloud users. In that case, all of the collaborators have access to the same files on their desktop. This is handy if you are working with a team and need to ensure that you all have the most current assets. You can learn how to share a folder with another Creative Cloud user here.

One of the benefits of using CC file sync is that your files are versioned in the cloud, which means that when you replace a file in your synced folder on your computer, the previous version is stored in the Cloud along with your current version. According to the CC Versioning FAQ, The Creative Cloud stores previous versions for 10 days, which is long enough for most users to be able to recover from a disastrous “Save” when you should have chosen “Save As…” Versioning is also our friend when we consider the Outlook database, because if I have previous versions of the database available, then I can roll back to a previous state and get back to work. Unfortunately, Outlook writes to the database frequently, so it is not a good idea to put your Microsoft User Data folder in your Creative Cloud folder. If you do, then CC will try to sync your Outlook database all the time, causing errors on both the CC side and on the Outlook side. A better strategy is to copy the Outlook database to a folder in CC on a schedule.

I use Automator to copy the Database, but it’s not as simple as “copy the Outlook database to my Creative Cloud folder.” Before you copy the database, however, it is best to ensure that Outlook is done with it. The best way to ensure that the database is “at rest” is to quit Outlook. Once Outlook has shut down, then it is safe to copy the database. When the copy is finished, then we need to restart Outlook. At the end, it is polite to send a message that the operation was successful. If you follow this flow, then you will safely have a versioned backup of your Outlook database going back 10 days.

In Automator, I created a workflow and used Calendar to schedule it. It uses the following actions in sequence:

If you would like to download the workflow and modify it for your own use, you can download the BackupOutlookDatabase workflow. Unzip the workflow and double click it to install. You will need to modify the workflow in order for it to work properly. Whether you download mine and modify it or make your own, you need to save the workflow and then save it again as an application in order to execute it with iCal.

To save your workflow as an application, you need to expose hidden menu options in Automator. Hold down the Option Key and click the File menu. You will now see Save As… Choose it and then save your workflow as an Application to a place you can find later.

Hold down the Option Key to expose Advanced Options in File Menu

Save as Application

Now, you need to schedule the workflow to run at a convenient time. I used Calendar to schedule the event, since the whole premise here is that the Outlook Database can become corrupt. If we use Calendar, then there is some built-in peace of mind because we’re using another system to backup the system of record. In Calendar, create a new calendar called Automator so you can hide the daily backup events. In the Automator Calendar, create a new event called “Backup Outlook” at a convenient time for you. I chose 2:00 am Eastern Time. Set this event to recur every day with no expiration. Set the action to Open File>Other… and browse to your Automator Workflow Application that you made in the last step.

Det the calendar event properties

There you have it: an automated backup for your Outlook Database using your Creative Cloud account. It is important to note that your computer needs to be in a state to run the Workflow at the time you designate, so if you have a laptop, you might want to leave it open or on overnight. It’s OK if the computer goes to sleep. The workflow will run so long as the computer isn’t powered down.

I mentioned that another benefit of using Creative Cloud for the backup is that the Database will be versioned in the cloud. This lets you go back in time if you inadvertently backup a corrupt database and need to go back a few days. To view file versions in Creative Cloud, go to your Creative Cloud account in a browser and click on Files, then click through to your Database file. Click on your Database to open the details view, and then click on the Activity link to view the file activity. Here, you can view annotations and versions in a timeline on the right. Choose the version you’d like to restore, and then either click the Restore link or the Restore icon to the left of the version.

Choose Versions from the Activity Timeline

Select a version and click Restore

Once you choose Restore, you will need to confirm that you really want to restore your version.

Confirm that you want to restore a version

Once you click Restore, your previous version of the Database will be restored and will immediately begin to sync with you CC Desktop folder. Depending on your Internet speed, it may take a while for the previous version to appear on your computer. You will get an alert from CC telling you that the file has been updated. Once you get that alert, you can safely use it to replace your corrupt Outlook Database file and get back to work.

This method has saved me hours of frustration, and while I don’t wish Outlook Database corruption on you, using this method could save you hours of frustration, too.

When Adobe acquired Day Software, it got not only a revolutionary Web Content Management system, but also a revolutionary Digital Asset Management platform based on CRX, Day’s implementation of the Java Content Repository. Quick to recognize its potential as a binding agent for an end to end Adobe workflow that included asset creation and management, campaign deployment, measurement and targeting, and campaign refinement, CQ quickly jumped to the forefront of many of our minds here at Adobe.

Adobe Drive 3 can connect to a CQ DAM and provide version control for Creative Suite assets. While this functionality existed with CQ5.4, in CQ5.5, there are some built-in examples of how CQ can extend an InDesign workflow to the Web. CQ5.5 ships with a couple of workflow scripts designed specifically for InDesign Server, which is required for them to function. Without InDesign Server available to CQ, what follows won’t happen. If you are a CQ customer and would like to try this for yourself, download the InDesign Server trial and install it on the same server where you keep CQ5.5. Otherwise, read on and you’ll get a sense of what’s possible with CQ DAM and InDesign Server.

InDesign server must be running and servicing requests on port 8080. On my Mac, I issue the following terminal command to fire up ID Server prior to starting CQ. I assume that it’s similar on Windows:

Once it’s running, it’s safe to start CQ in author mode. We’re looking at an author instance, not a publish instance, from this point forward. Once it’s running, you can mount the repository with Drive 3. Open Drive 3 and connect to your DAM. In my example, I’m running CQ on my local machine, hence the localhost connection.

Once connected, I can browse content in the DAM as if the DAM were a filesystem. CS apps such as Photoshop, Illustrator, InDesign, InCopy and Bridge understand that when CQ DAM is mounted via Drive, they can check files into and out of the DAM and access versions of those files in the DAM. This article isn’t about version control, though, it’s about repurposing content from InDesign in CQ5.5.

When I drop an InDesign file into the DAM via Bridge, Bridge creates a version and checks the file into CQ. In CQ, the appearance of that InDesign file fires off a series of workflow steps that, with the help of InDesign Server, create previews of that file, extract an IDML rendition of that file, extract text and images from that file, and assemble those items into a Page node in CQ. It’s this page node that’s the really, really cool product of ingestion.

Page nodes are reference-able in CQ using a reference component. Normally, when you place a reference component onto a page in CQ, you double click it and browse to the page you want to reference. Unfortunately, when CQ and InDesign Server make the page node of your InDesign file, it places that page into the “renditions” folder, which is a reasonable place to store it. Unfortunately, the Reference component doesn’t know how to look into the Renditions folder for this Page note. Fortunately, a colleague on the Chinese Solutions Consulting team, Joseph Lee, figured out a simple solution that allows us to use this page node as a source of content for other pages on our CQ site.

In the diagram above, the selected page node needs to move up two levels in the hierarchy so that it is at the same level as the jar:content node, just below the InDesign file’s primary node. We can drag it up there in CRXDE Lite, but that’s pretty “dirty,” as Joseph was quick to point out. Looking at the workflow, however, he identified a single modification that puts the page node into a place where it can indeed be found by a reference component. Note that it will no longer appear in the Renditions tab when you browse to the InDesign file in DAM, however. I think that the trade-off is worth it, though.

The change we need to make is in the DAM Update Asset workflow. Browse to your workflows console and double click DAM Update Asset. At the bottom of the workflow, there’s a step called Page Extraction. This is one of the new steps that’s included in CQ5.5. You need to change the Page Root Path to “/.” (do not include the quotes) just like below. This will instruct the workflow to create the page node directly below the InDesign file’s primary node. Once you’ve made the change, click OK and then Save in the upper left hand corner of the window. Now, you’re ready to reuse content from your InDesign files in your CQ pages.

To see this in action, let’s look at what the reference component will see after this workflow change, and after we either ingest a new InDesign file or make a change to it and check it back into the DAM, either of which will trigger the InDesign Page Extraction workflow and fix the page node location. Once you do this, you can now browse to it from a reference component.

In the figure above, I have selected a story that’s present in my InDesign document. Here it is in InDesign:

Now, here it is on my CQ page.

Now, here’s the really, really cool part. Nowhere in this process was I required to send my InDesign document overseas for XML extraction in order to get its content back into my Web Content Management system. Ingestion took literally seconds and allowed my authors to use the text and images from my InDesign documents immediately. In addition, when a user makes a change in InDesign and checks the document back into the DAM, the text will update in my CQ Author instance so that I can gracefully publish it to the Publish instance when I am ready.

Thanks again to Joseph Lee for his elegant but powerful suggestion to expose the page rendition to reference components.

I know that this workflow is a demonstration of capabilities, but what an amazing demonstration it is. A capable developer could develop components and workflows which would allow a CQ user to edit that same referenced copy, and then would fire off a workflow to re-inject that content back into the InDesign document. How about the situation where a CQ user mocks up a page layout and then pushes a button to tell InDesign Server to build an InDesign document using a specific template and the text and images from the repository. The possibilities are endless.

I firmly believe that CQ5.5 and its ability to drive InDesign Server heralds the beginning of a new era in multi-channel communications. Already the lines between print and web and apps are blurred. With InDesign Server and CQ5.5, those lines disappear entirely. Now, content truly becomes independent of presentation, which frees the marketer or publisher to extend their reach in existing channels and expand their businesses into emerging channels.

From time to time, customers ask me how to use Version Cue with Adobe Creative Suite 5. Version Cue is not a platform that Adobe will support going forward, but for now, there is at least a means of using Version Cue CS4 with Creative Suite 5. Drive 2 is available now and is out of beta. Get it here.

Most recently, I had a customer ask about how to migrate their Version Cue CS2 workflow to a Version Cue CS4 and Creative Suite 5 workflow.

To migrate, you’ll need to go from VC CS2 to VC CS3 and finally to VC CS4. There isn’t a direct migration path from CS2 to CS4. You can migrate from CS2 to CS3 from the server administration panel’s Advanced section, and this is best done on the machine where the new server is running.

Once you’ve done that, install Drive 2 on your CS5 machines. Browse to your VC CS4 server and log in to your projects. You will be able to check content in and out from the desktop and from within CS5 apps. In addition, if you would like to use Bridge with VersionCue CS54 then you will need to enable VersionCue support in Bridge. After you install Drive2, you’ll see the following message when you start Bridge:

You can enable or disable Drive2 in Bridge later if you want to. Go to Bridge’s preferences, and disable the Drive 2 Startup Script. Once installed, you will have access to the inspector Panel. The metadata explorer is off by default, but you can enable it in the preferences as well.

Having done that, you will now have a new panel in Bridge that lets you access projects through Drive 2. Click on Drive 2, then click the Connect To.. icon in the Content panel.

Then, enter the URL and credentials for your server.

Once you’re connected, then you can then browse your Version Cue CS4 projects in Bridge CS5. In addition, you can show versions, examine metadata, check out files and check in new versions. You’ll be able to use Version Cue directly from within InDesign, InCopy, Photoshop, and Illustrator. You’ll also be able to view versions and check files in and out from Bridge and the desktop.

To open/check out project files from within CS5 applications, simply browse to them in the Drive 2 folder that will appear on your desktop when you log in to your server.

It is interesting to note that Drive 2 allows you to check any file type into and out of a project, not just Design application files. You can manage versions of Flash Builder files, for instance, or even your Office documents. It’s a very versatile solution for small workgroups.