diff --git a/packages/flutter_tools/lib/src/usage.dart b/packages/flutter_tools/lib/src/usage.dart index 76e8e8ce752..3f122a0e5b7 100644 --- a/packages/flutter_tools/lib/src/usage.dart +++ b/packages/flutter_tools/lib/src/usage.dart @@ -26,8 +26,9 @@ class Usage { _analytics = new AnalyticsIO(_kFlutterUA, settingsName, version); // Report a more detailed OS version string than package:usage does by - // default as custom dimension 1 (configured in our analytics account). + // default. Also, send the branch name as the "channel". _analytics.setSessionValue('dimension1', os.name); + _analytics.setSessionValue('dimension2', FlutterVersion.getBranchName(whitelistBranchName: true)); bool runningOnCI = false; diff --git a/packages/flutter_tools/lib/src/version.dart b/packages/flutter_tools/lib/src/version.dart index b41a77c0705..9cc6a77846b 100644 --- a/packages/flutter_tools/lib/src/version.dart +++ b/packages/flutter_tools/lib/src/version.dart @@ -149,6 +149,16 @@ class FlutterVersion { String commit = _shortGitRevision(_runSync(['git', 'rev-parse', 'HEAD'])); commit = commit.isEmpty ? 'unknown' : commit; + final String branch = getBranchName(whitelistBranchName: whitelistBranchName); + + return '$branch/$commit'; + } + + /// Return the branch name. + /// + /// If whitelistBranchName is true and the branch is unknown, + /// the branch name will be returned as 'dev'. + static String getBranchName({ bool whitelistBranchName: false }) { String branch = _runSync(['git', 'rev-parse', '--abbrev-ref', 'HEAD']); branch = branch == 'HEAD' ? 'master' : branch; @@ -158,7 +168,7 @@ class FlutterVersion { branch = 'dev'; } - return '$branch/$commit'; + return branch; } /// The amount of time we wait before pinging the server to check for the