Lightroom: Create a task (progress bar) when changing keyword hierarchy and automatically write changes is set

  • 2
  • Idea
  • Updated 7 years ago
  • (Edited)
See http://feedback.photoshop.com/photosh... for more.

As far as I can tell, if you set "automatically write changes" in Lightroom, there is no way to know if when a change to Lightroom's internal idea of the xmp metadata hierarchy has been propagated to the metadata tags in the files.

I suggest that when a change to the keyword hierarchy takes place, and "automatically write changes" is set, that a task be started, just as when I add or delete a keyword from a large number of files. This way the user gets direct feedback as to how this change in hierarchy is progressing, and will get a warning message if they try to quit the program before it is complete.

I have am dealing with a nightmare of fixing hierarchical keywords because it seems that I quit Lightroom before certain options were complete, so that changes in the hierarchies were only propagated to a fraction of the photos in my catalog. For instance, I changed the containing keyword "Birds" to "Bird", which had 100's of keywords inside it, and 10,000's of photos inside the sub-keywords. Upon importing the photos to a new catalog, I found that about half of the photos had the old hierarchy, and half had the new (presumably because I quit Lightroom before it finished updating the metadata), and now I have to fix the problem.
Photo of Alan Harper

Alan Harper

  • 404 Posts
  • 78 Reply Likes

Posted 7 years ago

  • 2
Photo of john beardsworth

john beardsworth

  • 962 Posts
  • 199 Reply Likes
If you re-open the original catalogue, doesn't the writing process complete?

And why import to a new catalogue? Just use File > Export as Catalog. It's far better than using external xmp if you really need a new catalogue.
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
As a work-around, consider leaving auto-write-xmp off, then do all your stuff, then save manually, in which case you will get the progress indicator.
Photo of Alan Harper

Alan Harper

  • 404 Posts
  • 78 Reply Likes
John

I was having metadata conflicts. I had changed the metadata with another program, and LR was complaining. Part of the reason I was having conflicts is that I would make changes in LR, then in the other program, not understanding that LR hadn't completed. It turns out that I was having a second problem that I had jpegs that LR couldn't write, which was another source of conflicts, but I didn't know that at the time. I tried reading the metadata from every file, but, for whatever reason, creating a new catalog is many times faster than reading the data in for a current catalog, and, I thought at the time, cleaner.

It turns out, in retrospect, that I should have (a) written the metadata for every file, which would have made the files without conflicts consistent with LR, and then (b) have read the metadata for every file. But those are two 24-48 hour tasks, and can't be interrupted without starting over from scratch.

Rob

I don't think your suggestion helps. I would need to know which files I changed. And the problem is that there is no way (that I have found) to see "all the files whose metadata is not written". I would have to write every file, which is very slow, and then requires a complete turn-over of my backups.

For both of you, if there was a way to make a collection of files in various metadata statuses, I probably would have done things very differently, but I couldn't tell how many conflicts I had (other than scanning for those exclamation marks, which flicker on and off).

Regardless, I do think that changes in the hierarchy should be full citizens, and have the same change indicator as adding or deleting metadata.

Cheers
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Alan - in Lr2, Lightroom only saved changed files. But there was a bug and sometimes changed files weren't saved. I'm guessing Adobe decided it was better to just save the whole lot than try to fix the bug (which is what we have in Lr3). For now, sorting by edit time then scanning for where the down-arrows stop is a way to only save changed files, and if you do it manually you will always have the progress indicator. Also, you *can* get collections of files in various metadata states *if* you are willing to restart Lightroom, issue some SQL while its down, and then use Lr/Transporter in Lightroom upon resumption - not for the squeamish but doable.

SQL:

select ''
,LibraryRootFolder.absolutePath || LibraryFolder.pathFromRoot || LibraryFile.lc_idx_filename as fullFileName
,Image.sidecarStatus
,AdditionalMetadata.externalXmpIsDirty

from Adobe_images as Image
,AgLibraryFile as LibraryFile
,AgLibraryFolder as LibraryFolder
,AgLibraryRootFolder as LibraryRootFolder
,Adobe_AdditionalMetadata as AdditionalMetadata

where Image.rootFile = LibraryFile.id_local
and LibraryFile.Folder = LibraryFolder.id_local
and LibraryFolder.rootFolder = LibraryRootFolder.id_local
and AdditionalMetadata.image = Image.id_local

-- ----------------------------------------------------------------------------------------
and (Image.sidecarStatus not in (0, 7)
or AdditionalMetaData.externalXmpIsDirty > 0)
-- ----------------------------------------------------------------------------------------

order by fullFileName
;

As I've mentioned here and there, my solution has been to lock when finished, ignore the metadata arrows entirely, and only save metadata if "real" changes have occurred since lockage (using ChangeManager). If I still had any problems or issues I would automate the above mentioned solution.
Photo of Alan Harper

Alan Harper

  • 404 Posts
  • 78 Reply Likes
Rob,

Thanks for all this. While I haven't played with LR with "automatically save changes" turned off, I do note that changing the hierarchy does not update the edit time, so you can't sort by edit time and look for the arrows. I haven't played with it enough to see whether the arrow is turned on when you change the hierarchy.

I honestly am trying to not learn sql, (or perl), as I am not getting younger or smarter.

I am guessing that one reason that LR doesn't allow grouping by metadata status, is that it can be wrong. Until you synchronize a folder, LR can't know whether the metadata has been changed behind its back, so I am guessing that you would need to synchronize your entire catalog before the sql would work.

I am going to look into your plugins as soon as I can get to it. They look to be very helpful. For now, I am just using a belt-and-suspenders technique of automatically writing metadata (which seems to work if you don't quit before it is done), and then synchronizing the folder just to be sure. My disks are fast, so keeping automatically write metadata on is not a problem. So far, I haven't had any metadata conflicts creep into my catalog using this approach.

A
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Quoting Alan: "I am guessing that one reason that LR doesn't allow grouping by metadata status, is that it can be wrong."

Probably an astute speculation. i.e. the problem with the Lr2 approach was not saving the xmp, but being sure all and only were included.

Its probably no lacksidaisical omission that these metadata collections were still not supported come Lr3.

PS - in Lr2, the way I made sure all changed photos were included was to do a database (catalog) optimization before saving metadata.

Quoting Alan again: "note that changing the hierarchy does not update the edit time"

Good point - maybe try 'Optimize Catalog'(?)
Photo of Alan Harper

Alan Harper

  • 404 Posts
  • 78 Reply Likes
Just in case someone from Adobe is following this conversation, I want to bring it back to the original subject. While I think that there are lots of issues about metadata, and edit time, etc. that can be addressed, I would really like to just see a progress bar when the hierarchy is changed. Obviously, Lightroom does know which files have changed, and if it lets the user know that it is in the process of changing them, then the user is unlikely to quit before the task completes.

Rob or John--A +1 might help...