1 /*
2  * o_svn.h
3  *
4  * S.Pinigin copy o_cvs.h and replace cvs/Cvs/CVS to svn/Svn/SVN.
5  *
6  * Class providing access to most of SVN commands.
7  */
8 
9 #ifndef O_SVN_H
10 #define O_SVN_H
11 
12 #include "o_svnbase.h"
13 
14 #ifdef CONFIG_OBJ_SVN
15 
16 class ESvn:public ESvnBase {
17     public:
18         char *LogFile;
19         int Commiting;
20 
21         ESvn (int createFlags,EModel **ARoot,char *Dir,char *ACommand,char *AOnFiles);
22         ESvn (int createFlags,EModel **ARoot);
23         ~ESvn ();
24 
25         void RemoveLogFile ();
26         // Return marked files in allocated space separated list
27         char *MarkedAsList ();
28         // Return SVN status char of file or 0 if unknown
29         // (if char is lowercase, state was guessed from last command invoked upon file)
30         char GetFileStatus(const char *file);
31 
32         virtual void ParseLine (char *line,int len);
33         // Returns 0 if OK
34         virtual int RunPipe(const char *Dir, const char *Command, const char *OnFiles);
35         virtual void ClosePipe ();
36         // Start commit process (opens message buffer), returns 0 if OK
37         int RunCommit(const char *Dir, const char *Command, const char *OnFiles);
38         // Finish commit process (called on message buffer close), returns 0 if OK
39         int DoneCommit (int commit);
40 
41         virtual int CanQuit ();
42         virtual int ConfQuit (GxView *V,int multiFile);
43 
GetContext()44         virtual int GetContext () {return CONTEXT_SVN;}
45         virtual EEventMap *GetEventMap ();
46 };
47 
48 extern ESvn *SvnView;
49 
50 #endif // CONFIG_OBJ_SVN
51 
52 #endif // O_SVN_H
53