diff --git a/DEPS b/DEPS
index 573e85c..84c331d 100644
--- a/DEPS
+++ b/DEPS
@@ -75,6 +75,9 @@
   "gperftools_revision": "180bfa10d7cb38e8b3784d60943d50e8fcef0dcb",
 
   # Revisions of /third_party/* dependencies.
+  # Note that putting an EOL comment after a dependency below will prevent the
+  # 'tools/rev_sdk_deps.dart' tool from attempting to rev to a newer revision.
+
   "args_rev": "73e8d3b55cbedc9765f8e266f3422d8914f8e62a",
   "async_rev": "f3ed5f690e2ec9dbe1bfc5184705575b4f6480e5",
   "bazel_worker_rev": "9710de6c9c70b1b583183db9d9721ba64e5a16fe",
@@ -103,7 +106,7 @@
   #   and land the review.
   #
   # For more details, see https://github.com/dart-lang/sdk/issues/30164.
-  "dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea",
+  "dart_style_rev": "d7b73536a8079331c888b7da539b80e6825270ea", # manually rev'd
 
   "dartdoc_rev": "58348a98b992ce99b95d23131b67227bdb2b4875",
   "devtools_rev": "51ac983d2db7eb19b3ce5956cb70b769d74fe784",
@@ -119,7 +122,7 @@
   "intl_rev": "e9b573679de5e703d89a242b9dca331c772979ef",
   "jinja2_rev": "2222b31554f03e62600cd7e383376a7c187967a1",
   "json_rpc_2_rev": "2de9a1f9821807fa2c85fd48e2f70b9cbcddcb67",
-  "linter_rev": "1ddc70948d94f2449fec69a95e3ceb7b6b6c8348", # 1.25.0
+  "linter_rev": "1ddc70948d94f2449fec69a95e3ceb7b6b6c8348", # manually rev'd
   "lints_rev": "8294e5648ab49474541527e2911e72e4c5aefe55",
   "logging_rev": "f6979e3bc3b6e1847a08335b7eb6304e18986195",
   "markdown_rev": "e3f4bd28c9e61b522f75f291d4d6cfcfeccd83ee", # b/236358256
@@ -133,7 +136,7 @@
   "ply_rev": "604b32590ffad5cbb82e4afef1d305512d06ae93",
   "pool_rev": "c40cc32eabecb9d60f1045d1403108d968805f9a",
   "protobuf_rev": "3149f6f2d323e11dbcc983b7ac8b3b9e9d686293",
-  "pub_rev": "9bf4289d6fd5d6872a8929d6312bbd7098f3ea9c",
+  "pub_rev": "9bf4289d6fd5d6872a8929d6312bbd7098f3ea9c", # manually rev'd
   "pub_semver_rev": "5c0b4bfd5ca57fe16f1319c581dc8c882e9b8cb2",
   "root_certificates_rev": "692f6d6488af68e0121317a9c2c9eb393eb0ee50",
   "rust_revision": "b7856f695d65a8ebc846754f97d15814bcb1c244",
diff --git a/tools/rev_sdk_deps.dart b/tools/rev_sdk_deps.dart
index 6897ae2..47a0582 100644
--- a/tools/rev_sdk_deps.dart
+++ b/tools/rev_sdk_deps.dart
@@ -3,15 +3,6 @@
 
 import 'package:path/path.dart' as path;
 
-// These packages are effectively pinned - they often require manual work when
-// rolling.
-// TODO(devoncarew): Keep this metadata in the DEPS file.
-const Set<String> pinned = {
-  'dart_style',
-  'linter',
-  'pub',
-};
-
 void main(List<String> args) async {
   // Validate we're running from the repo root.
   if (!File('README.dart-sdk').existsSync() || !File('DEPS').existsSync()) {
@@ -22,7 +13,14 @@
   final gclient = GClientHelper();
 
   final deps = await gclient.getPackageDependencies();
-  print('${deps.length} non-pinned package dependencies found.');
+  print('${deps.length} package dependencies found.');
+
+  // Remove pinned deps.
+  final pinnedDeps = calculatePinnedDeps();
+  deps.removeWhere((dep) => pinnedDeps.contains(dep.name));
+
+  print('Not attempting to move forward the revisions for: '
+      '${pinnedDeps.toList().join(', ')}.');
   print('');
 
   deps.sort((a, b) => a.name.compareTo(b.name));
@@ -51,6 +49,19 @@
   }
 }
 
+// By convention, pinned deps are deps with an eol comment.
+Set<String> calculatePinnedDeps() {
+  final packageRevision = RegExp(r'"(\w+)_rev":');
+
+  // "markdown_rev": "e3f4bd28c9...cfeccd83ee", # b/236358256
+  var depsFile = File('DEPS');
+  return depsFile
+      .readAsLinesSync()
+      .where((line) => packageRevision.hasMatch(line) && line.contains('", #'))
+      .map((line) => packageRevision.firstMatch(line)!.group(1)!)
+      .toSet();
+}
+
 class GitHelper {
   final String dir;
 
@@ -115,8 +126,6 @@
       );
     }).where((PackageDependency deps) {
       return deps.entry.startsWith('sdk/third_party/pkg/');
-    }).where((PackageDependency deps) {
-      return !pinned.contains(deps.name);
     }).toList();
   }
 
