} // end SVNListModle private void ReadFilesProperties(object sender, DoWorkEventArgs e) { SvnClient client = new SvnClient(); SvnLogArgs logArgs = new SvnLogArgs(); logArgs.RetrieveAllProperties = false; while (_stringToRead.Count > 0) { string path = _stringToRead[0]; _stringToRead.RemoveAt(0); try { Collection <SvnLogEventArgs> status; if (!client.GetLog(leftRoot + path, logArgs, out status)) { status = null; } // end if leftPathToStatus.Add(path, status); } catch (Exception) { } // end try try { Collection <SvnLogEventArgs> status; if (!client.GetLog(rightRoot + path, logArgs, out status)) { status = null; } // end if rightPathToStatus.Add(path, status); } catch (Exception) { } // end try _worker.ReportProgress(0, path); } // end while client.Dispose(); } // end ReadFilesProperties
public static void DeinitSVNClient() { if (client != null) { client.Dispose(); } }
private void OnSvnVerify(object sender, RoutedEventArgs e) { Collection <SvnListEventArgs> list = new Collection <SvnListEventArgs>(); try { SvnClient svn = new SvnClient(); svn.Authentication.UserNamePasswordHandlers += new EventHandler <SharpSvn.Security.SvnUserNamePasswordEventArgs>( delegate(Object s, SharpSvn.Security.SvnUserNamePasswordEventArgs e1) { e1.UserName = usernameTextBox.Text; e1.Password = passwordPasswordBox.Password; }); svn.GetList(target, out list); svn.Dispose(); GlobalVariable.svnUserName = usernameTextBox.Text; GlobalVariable.svnPassword = passwordPasswordBox.Password; if (this.Owner is WindowFile) { ((WindowFile)this.Owner).My_Load(); } else if (this.Owner is CompileToolWindow) { ((CompileToolWindow)this.Owner).DrawSvnLog(); } this.Close(); } catch (Exception) { MessageBox.Show("用户名或密码错误", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); } }
public void Dispose() { if (client != null) { client.Dispose(); } client = null; }
public override void Disconnect() { if (client != null) { client.Dispose(); client = null; } }
static void ConvertChangeLog(int startRevision) { Console.WriteLine("Reading SVN changelog, this might take a while..."); SvnClient client = new SvnClient(); StringWriter writer = new StringWriter(); XmlTextWriter xmlWriter = new XmlTextWriter(writer); xmlWriter.Formatting = Formatting.Indented; xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("log"); int progressCount = 0; client.Log( "..", new SvnLogArgs { // retrieve log in reverse order Start = SvnRevision.Base, End = new SvnRevision(startRevision) }, delegate(object sender, SvnLogEventArgs e) { if (++progressCount == 10) { Console.Write("."); progressCount = 0; } xmlWriter.WriteStartElement("logentry"); xmlWriter.WriteAttributeString("revision", e.Revision.ToString(CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("author", e.Author); xmlWriter.WriteElementString("date", e.Time.ToUniversalTime().ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)); xmlWriter.WriteElementString("msg", e.LogMessage); xmlWriter.WriteEndElement(); } ); xmlWriter.WriteEndDocument(); Console.WriteLine(); XmlTextReader input = new XmlTextReader(new StringReader(writer.ToString())); XslCompiledTransform xsl = new XslCompiledTransform(); xsl.Load(@"..\data\ConversionStyleSheets\SVNChangelogToXml.xsl"); StreamWriter tw = new StreamWriter(@"..\doc\ChangeLog.xml", false, Encoding.UTF8); xmlWriter = new XmlTextWriter(tw); xmlWriter.Formatting = Formatting.Indented; xsl.Transform(input, xmlWriter); xmlWriter.Close(); tw.Close(); client.Dispose(); Console.WriteLine("Finished"); }
public override void Dispose() { if (_client == null) { return; } _client.Dispose(); _client = null; GC.SuppressFinalize(this); }
protected override void Dispose(bool disposing) { try { ReleaseShellMonitor(disposing); _client.Dispose(); } finally { base.Dispose(disposing); } }
protected void Dispose(bool disposing) { try { if (_usingShell) { //ReleaseShellMonitor(disposing); } _client.Dispose(); } finally { Dispose(disposing); } }
/// <summary> /// Sets credentials for credentials, path and passes the control to the /// implementing task. /// </summary> /// <returns></returns> public override bool Execute() { SvnClient client = new SvnClient(); client.Authentication.Clear(); if (string.IsNullOrEmpty(Password)) { client.Authentication.UserNameHandlers += delegate(object o, SvnUserNameEventArgs eventArgs) { eventArgs.UserName = Username; }; } else { client.Authentication.UserNamePasswordHandlers += delegate(object o, SvnUserNamePasswordEventArgs eventArgs) { eventArgs.UserName = Username; eventArgs.Password = Password; }; } client.Authentication.AddSubversionFileHandlers(); client.Authentication.SslServerTrustHandlers += SslServerTrustHandlers; client.Authentication.SslClientCertificateHandlers += SslClientCertificateHandlers; try { return ExecuteCommand(client); } finally { client.Dispose(); } }
private static void GetLogs(bool console_mode, string application_path, string repository_location, long last_revision, Output_Type output_type) { SvnTarget repository; SvnClient client = new SvnClient(); long current_revision = -1; if (SvnTarget.TryParse(repository_location, out repository) == true) { try { SvnInfoEventArgs info; client.GetInfo(new Uri(repository_location), out info); current_revision = info.Revision; } catch (Exception ex) { Debug.WriteLine(ex.Message); if (console_mode == true) { Console.WriteLine(ex.Message); } } if (last_revision < current_revision) { DataTable datatable = new DataTable("log"); datatable.Columns.Add("Revision", typeof(long)); datatable.Columns.Add("Author", typeof(string)); datatable.Columns.Add("Time", typeof(DateTime)); datatable.Columns.Add("ChangedPaths", typeof(string)); datatable.Columns.Add("LogMessage", typeof(string)); try { System.Collections.ObjectModel.Collection<SvnLogEventArgs> logitems = new System.Collections.ObjectModel.Collection<SvnLogEventArgs>(); SvnLogArgs logargs = new SvnLogArgs(new SvnRevisionRange(current_revision, last_revision + 1)); client.GetLog(new Uri(repository_location), logargs, out logitems); datatable.BeginLoadData(); foreach (SvnLogEventArgs logitem in logitems) { StringBuilder ChangedPaths = new StringBuilder(); if (logitem.ChangedPaths != null) { foreach (SvnChangeItem path in logitem.ChangedPaths) { ChangedPaths.AppendFormat("{1} {2}{0}", Environment.NewLine, path.Action, path.Path); if (path.CopyFromRevision != -1) { ChangedPaths.AppendFormat("{1} -> {2}{0}", Environment.NewLine, path.CopyFromPath, path.CopyFromRevision); } } } DataRow datarow = datatable.NewRow(); datarow["Revision"] = logitem.Revision; datarow["Author"] = logitem.Author; datarow["Time"] = logitem.Time.ToLocalTime(); datarow["ChangedPaths"] = ChangedPaths.ToString(); datarow["LogMessage"] = logitem.LogMessage; datatable.Rows.Add(datarow); } datatable.EndLoadData(); datatable.AcceptChanges(); switch (output_type) { case Output_Type.Console: OutputToConsole(console_mode, application_path, datatable); break; case Output_Type.Txt: OutputToTxt(console_mode, application_path, datatable); break; case Output_Type.XML: OutputToXML(console_mode, application_path, datatable); break; case Output_Type.XMLTransform: OutputToXMLTransform(console_mode, application_path, datatable); break; case Output_Type.RSS: OutputToRSS(console_mode, application_path, datatable); break; default: break; } last_revision = Convert.ToInt32(datatable.Compute("max(Revision)", string.Empty)); System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Remove("last_revision"); config.AppSettings.Settings.Add("last_revision", last_revision.ToString()); config.Save(); } catch (Exception ex) { Debug.WriteLine(ex.Message); if (console_mode == true) { Console.WriteLine(ex.Message); } } } client.Dispose(); } else { Debug.WriteLine("Unable to connect to repository"); if (console_mode == true) { Console.WriteLine("Unable to connect to repository"); } } }
public void Dispose() { reporter.Dispose(); client.Dispose(); }
private static void GetLogs(bool console_mode, string application_path, string repository_location, long last_revision, Output_Type output_type) { SvnTarget repository; SvnClient client = new SvnClient(); long current_revision = -1; if (SvnTarget.TryParse(repository_location, out repository) == true) { try { SvnInfoEventArgs info; client.GetInfo(new Uri(repository_location), out info); current_revision = info.Revision; } catch (Exception ex) { Debug.WriteLine(ex.Message); if (console_mode == true) { Console.WriteLine(ex.Message); } } if (last_revision < current_revision) { DataTable datatable = new DataTable("log"); datatable.Columns.Add("Revision", typeof(long)); datatable.Columns.Add("Author", typeof(string)); datatable.Columns.Add("Time", typeof(DateTime)); datatable.Columns.Add("ChangedPaths", typeof(string)); datatable.Columns.Add("LogMessage", typeof(string)); try { System.Collections.ObjectModel.Collection <SvnLogEventArgs> logitems = new System.Collections.ObjectModel.Collection <SvnLogEventArgs>(); SvnLogArgs logargs = new SvnLogArgs(new SvnRevisionRange(current_revision, last_revision + 1)); client.GetLog(new Uri(repository_location), logargs, out logitems); datatable.BeginLoadData(); foreach (SvnLogEventArgs logitem in logitems) { StringBuilder ChangedPaths = new StringBuilder(); if (logitem.ChangedPaths != null) { foreach (SvnChangeItem path in logitem.ChangedPaths) { ChangedPaths.AppendFormat("{1} {2}{0}", Environment.NewLine, path.Action, path.Path); if (path.CopyFromRevision != -1) { ChangedPaths.AppendFormat("{1} -> {2}{0}", Environment.NewLine, path.CopyFromPath, path.CopyFromRevision); } } } DataRow datarow = datatable.NewRow(); datarow["Revision"] = logitem.Revision; datarow["Author"] = logitem.Author; datarow["Time"] = logitem.Time.ToLocalTime(); datarow["ChangedPaths"] = ChangedPaths.ToString(); datarow["LogMessage"] = logitem.LogMessage; datatable.Rows.Add(datarow); } datatable.EndLoadData(); datatable.AcceptChanges(); switch (output_type) { case Output_Type.Console: OutputToConsole(console_mode, application_path, datatable); break; case Output_Type.Txt: OutputToTxt(console_mode, application_path, datatable); break; case Output_Type.XML: OutputToXML(console_mode, application_path, datatable); break; case Output_Type.XMLTransform: OutputToXMLTransform(console_mode, application_path, datatable); break; case Output_Type.RSS: OutputToRSS(console_mode, application_path, datatable); break; default: break; } last_revision = Convert.ToInt32(datatable.Compute("max(Revision)", string.Empty)); System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings.Remove("last_revision"); config.AppSettings.Settings.Add("last_revision", last_revision.ToString()); config.Save(); } catch (Exception ex) { Debug.WriteLine(ex.Message); if (console_mode == true) { Console.WriteLine(ex.Message); } } } client.Dispose(); } else { Debug.WriteLine("Unable to connect to repository"); if (console_mode == true) { Console.WriteLine("Unable to connect to repository"); } } }
// svn 日志的渲染及更新 public void DrawSvnLog() { svnLogUris.Clear(); { try { svnLogUris.Add(new Uri(thisWindowRedis.Get <string>("svn_assist:config:svn_log:1:link"))); svnLogUris.Add(new Uri(thisWindowRedis.Get <string>("svn_assist:config:svn_log:3:link"))); svnLogUris.Add(new Uri(thisWindowRedis.Get <string>("svn_assist:config:svn_log:2:link"))); svnLogUris.Add(new Uri(thisWindowRedis.Get <string>("svn_assist:config:svn_log:4:link"))); } catch (Exception) { if (MessageBox.Show("svn的部分Uri无效,是否退出程序?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { running = false; this.Close(); } else { return; } } } try { { Thread firstDrawLog = new Thread(new ThreadStart(() => { this.Dispatcher.BeginInvoke( (ThreadStart) delegate() { SvnClient svn = new SvnClient(); svn.Authentication.UserNamePasswordHandlers += new EventHandler <SharpSvn.Security.SvnUserNamePasswordEventArgs>( delegate(Object s, SharpSvn.Security.SvnUserNamePasswordEventArgs e1) { e1.UserName = GlobalVariable.svnUserName; e1.Password = GlobalVariable.svnPassword; }); Collection <SvnLogEventArgs> svnLogs = new Collection <SvnLogEventArgs>(); SvnLogArgs logarg = new SvnLogArgs(); logarg.Limit = maxNumOfDisplay; for (int i = 0; i < svnLogUris.Count; i++) { if (svn.GetLog((Uri)svnLogUris[i], logarg, out svnLogs)) { UpdateListView(svnLogs, (ListView)svnLogListViews[i]); } } svn.Dispose(); }); })); firstDrawLog.IsBackground = true; firstDrawLog.Start(); } StartUpdateSvnLog(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.Source, MessageBoxButton.OK, MessageBoxImage.Warning); } }
private void CompileToolWindow_Loaded(object sender, RoutedEventArgs e) { thisWindowRedis = new RedisClient(MainWindow.myRedisIP, MainWindow.myRedisPort, null, MainWindow.database); MyInitial(); // 根据权限初始化按钮 { ArrayList allTrunkCodeBtn = new ArrayList(); { allTrunkCodeBtn.Add(trunkCodeBtn1); allTrunkCodeBtn.Add(trunkCodeBtn2); allTrunkCodeBtn.Add(trunkCodeBtn3); allTrunkCodeBtn.Add(trunkCodeBtn4); setBtn(allTrunkCodeBtn, RedisKeyName.trunkCodeCommandSet, RedisKeyName.trunkCodeCommandPrefix, RedisKeyName.userAuthorityPrefix); } ArrayList allBranchCodeBtn = new ArrayList(); { allBranchCodeBtn.Add(branchCodeBtn1); allBranchCodeBtn.Add(branchCodeBtn2); allBranchCodeBtn.Add(branchCodeBtn3); allBranchCodeBtn.Add(branchCodeBtn4); setBtn(allBranchCodeBtn, RedisKeyName.branchCodeCommandSet, RedisKeyName.branchCodeCommandPrefix, RedisKeyName.userAuthorityPrefix); } { byte[][] allCommand = thisWindowRedis.SMembers(RedisKeyName.serverCommandSet); foreach (var item in allCommand) { MenuItem newMenuItem = new MenuItem(); newMenuItem.Header = thisWindowRedis.Get <string>(RedisKeyName.serverCommandPrefix + Encoding.UTF8.GetString(item) + ":name"); newMenuItem.Name = Encoding.UTF8.GetString(item); newMenuItem.Click += OnMenuItemClick; if (MainWindow.myAuthority == 3 || thisWindowRedis.Get <int>( RedisKeyName.userAuthorityPrefix + MainWindow.myUsername + ":" + Encoding.UTF8.GetString(item)) == 1) { newMenuItem.IsEnabled = true; } else { newMenuItem.IsEnabled = false; } SMenu.Items.Add(newMenuItem); } allCommand = thisWindowRedis.SMembers(RedisKeyName.tagIDSet); foreach (var item in allCommand) { MenuItem newMenuItem = new MenuItem(); newMenuItem.Tag = Encoding.UTF8.GetString(item); newMenuItem.Header = thisWindowRedis.Get <string>( RedisKeyName.binTagPrefix + Encoding.UTF8.GetString(item) + ":param").Replace(" ", "/").Replace("_", "__"); newMenuItem.Click += OnSwitchTo; newMenuItem.Name = thisWindowRedis.Get <string>( RedisKeyName.binTagPrefix + Encoding.UTF8.GetString(item) + ":name"); string fatherName = thisWindowRedis.Get <string>( RedisKeyName.binTagPrefix + Encoding.UTF8.GetString(item) + ":father" ); newMenuItem.IsEnabled = true; MenuItem fatherMenuItem = FindChildByName(SMenu, fatherName); if (fatherMenuItem != null) { fatherMenuItem.Items.Add(newMenuItem); } } } } // 服务器列表渲染 byte[][] allKeys = thisWindowRedis.SMembers(RedisKeyName.serverIDSet); foreach (var item in allKeys) { string serverID = Encoding.UTF8.GetString(item); serverListView.Items.Add(new Server(serverID)); currentBranchOfServer.Add(serverID, thisWindowRedis.Get <int>(RedisKeyName.currentBranchOfServerPrefix + serverID)); } // 等待任务队列渲染 //list = redis.GetAllItemsFromList(Wtask_list); //foreach (var item in list) //{ // Task2 this_task = js.Deserialize<Task2>(item); // Wtask_queue.Items.Add(this_task); //} // 等待任务队列更新线程 Thread updateWaitingTask = new Thread(new ThreadStart(UpdateWaitingTaskQueueListView)); updateWaitingTask.IsBackground = true; updateWaitingTask.Start(); // 已完成队列渲染 List <string> finishedTaskList = thisWindowRedis.GetAllItemsFromList(RedisKeyName.finishedTaskList); foreach (var taskID in finishedTaskList) { finishedTaskQueueListView.Items.Insert(0, new Task(taskID)); } // 已完成队列更新线程 Thread subscrbe = new Thread(new ThreadStart(OnSubscribe)); subscrbe.IsBackground = true; subscrbe.Start(); // svn日志查看是否需要输入密码 { SvnClient svn = new SvnClient(); SvnTarget target = null; try { target = (SvnTarget)thisWindowRedis.Get <string>("svn_assist:config:svn_log:1:link"); svn.Authentication.UserNamePasswordHandlers += new EventHandler <SharpSvn.Security.SvnUserNamePasswordEventArgs>( delegate(Object s, SharpSvn.Security.SvnUserNamePasswordEventArgs e1) { e1.UserName = GlobalVariable.svnUserName; e1.Password = GlobalVariable.svnPassword; }); Collection <SvnListEventArgs> list = new Collection <SvnListEventArgs>(); svn.GetList(target, out list); DrawSvnLog(); } catch (ArgumentNullException ex) { MessageBox.Show(ex.Message, ex.Source, MessageBoxButton.OK, MessageBoxImage.Warning); } catch (SvnException) { SvnLoginInWindow slw = new SvnLoginInWindow(target); slw.Show(); slw.Owner = this; } catch (Exception ex) { MessageBox.Show(ex.Message, ex.Source, MessageBoxButton.OK, MessageBoxImage.Warning); } svn.Dispose(); } // svn 高亮当前版本 Thread highLightCurrentRevision = new Thread(new ThreadStart(HighLightCurrentRevision)); highLightCurrentRevision.IsBackground = true; highLightCurrentRevision.Start(); }
protected void Dispose(bool disposing) { reporter.Dispose(); client.Dispose(); realtimeTextWriter.Dispose(); }
//True if disposal is deterministic, meaning we should dispose managed objects. private void Dispose(bool deterministic) { client.Dispose(); }