public IEnumerable QueryHistory(string localPath, VersionSpec version, RecursionType recursion, WorkspaceVersionSpec toVersion)
        {
            Type[] parameterTypes = new[] {
                typeof(string), version.Type, typeof(int), recursion.Type, typeof(string), toVersion.Type, toVersion.Type, typeof(int), typeof(bool), typeof(bool)
                };

            MethodInfo queryHistoryMethod = _type.GetMethod("QueryHistory", parameterTypes);

            IEnumerable history = (IEnumerable)queryHistoryMethod.Invoke(
                _instance, new[] { localPath, version.Instance, 0, recursion.Instance, null, null, toVersion.Instance, int.MaxValue, false, false }
                );

            return history;
        }
示例#2
0
        private static int GetChangeset(VersionControlServer versionControlServer, string workingDirectory)
        {
            int changesetId = 0;

            WorkspaceVersionSpec workspaceVersionSpec = new WorkspaceVersionSpec(
                _versionAssembly,
                versionControlServer.GetWorkspace(workingDirectory)
                );

            IEnumerable history = versionControlServer.QueryHistory(
                workingDirectory,
                new VersionSpec(_versionAssembly).Latest,
                new RecursionType(_versionAssembly).Full,
                workspaceVersionSpec
                );

            IEnumerator historyEnumerator = history.GetEnumerator();
            Changeset changeset = new Changeset(_versionAssembly);

            if (historyEnumerator.MoveNext())
                changeset = new Changeset(_versionAssembly, historyEnumerator.Current);

            if (changeset.Instance != null)
                changesetId = changeset.ChangesetId;

            return changesetId;
        }