lib/braid/commands/update.rb in braid-1.0.2 vs lib/braid/commands/update.rb in braid-1.0.3

- old
+ new

@@ -21,10 +21,12 @@ mirror = config.get!(path) revision_message = options["revision"] ? " to #{display_revision(mirror, options["revision"])}" : "" msg "Updating mirror '#{mirror.path}'#{revision_message}." + was_locked = mirror.locked? + # check options for lock modification if mirror.locked? if options['head'] msg "Unlocking mirror '#{mirror.path}'." if verbose? mirror.lock = nil @@ -36,13 +38,19 @@ setup_remote(mirror) msg "Fetching new commits for '#{mirror.path}'." if verbose? mirror.fetch - new_revision = validate_new_revision(mirror, options['revision']) + new_revision = options['revision'] + begin + new_revision = validate_new_revision(mirror, options['revision']) + rescue InvalidRevision + # Ignored as it means the revision matches expecte + end target_revision = determine_target_revision(new_revision) - if mirror.merged?(target_revision) + if (options['revision'] && was_locked && target_revision == mirror.base_revision) || + (options['revision'].nil? && !was_locked && mirror.merged?(target_revision)) msg "Mirror '#{mirror.path}' is already up to date." return end if mirror.squashed?