Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Commit problems

Help
lassebaek
2004-11-17
2013-04-25
  • lassebaek
    lassebaek
    2004-11-17

    Hi

    I have problems committing a file more than once with my application. This means - I can add the file and commit it once but when I will commit it again nothing occurs.

    In the CVS/Entries file the entry looks like this after the first commit:
    /test.txt/1.1///
    The date doesn't appear like in the other entries. But even though the date is filled in manually the commit command doesn't work.
    Also I can't get the command line tool to work with other commands than checkout.
    I use the v0.35 of the library and ext as protocol.
    What is wrong?

    Thanks
    Lasse Baek

     
    • nemezis rules
      nemezis rules
      2004-11-18

      I have exactly the same problem. I am using "OpenSSH for Windows v3.8.1p1-1" for the ext connection and the command line client included in SharpCvsLib-v0.35.

      Nothing really works except the checkout command.

      Cheers
      Soeren

       
      • Hi Soeren,

        You should populate the Folders variable on the WorkingDirectory object.  The files you specify here are then sent to the cvs repository.  Let me know if that fixes your issue.

        Cheers,

        Clayton

         
        • nemezis rules
          nemezis rules
          2004-11-22

          Hi again

          No, I set the currentWorkingDirectory via the GetFoldersToCommit method before executing the commit command.

          In GetFoldersToCommit you fetch repository, root, etc. from Path.GetDirectoryName(file). The "Repository" and "Root" files are however located in the sub-directory "CVS". It seems this folder is not searched through.

          So, still not working :-(

          Cheers
          Soeren

           
          • Hi Soeren,

            I have changed the Parser command to append CVS when looking up the management folders and checked this in.

            Just to confirm, this should not have caused an issue with the Import command.  The import command acts on files immediately.  Let me know if you have observed otherwise.

            Cheers,

            Clayton

             
            • lassebaek
              lassebaek
              2004-11-25

              The problem isn't solved by appending "CVS" to the path.

              Neither the Entries file or the file on the server changes when doing a commit.

              Below a snapshot of the WorkingDirectory is listed, given as input to the CommitCommand2 object.

              {Object=[WorkingDirectory]
                  cvsRoot=[:ext:user@server.com:/server/dir]
                  localdirectory=[c:\repos]
                  repositoryname=[module]
                  revision=[]
                  overrideDirectory=[]
                  WorkingDirectoryName=[module]
                  WorkingPath=[c:\repos\module\]

              Is something wrong in this object?? The revision is not set, which seems a little strange. How is this done?

              Also when fetching entries from the Entries file the GetFoldersToCommit method is acting weird. If the file/entry is found in "Entries", you create a new entry - that is, you get the entry "/file.txt/0//" even when the file/entry already exist in "Entries".

              Hope you can see the problem and have an idea of what is wrong.

              Cheers,
              Lasse Baek

               
              • Hi Lasse,

                Just sending a quick note to say that I will look into this over the weekend and get back to you. 

                Just a note about the revision property on the WorkingDirectory, this is the revision that is sent back from the cvs server.  It normally does not contain a value and is used more or less just as a bucket.

                Also if you want a closer look at the server/ client communication you can look at the examples directory on how to add "listeners" for the message events that are being sent/ received.

                Cheers,

                Clayton

                 
                • I was just reminded that I did not finish up this thread.  The commit command seems to be working as expected but it appears that there were no files being passed from the command line to the library (as this link in the thread hints at: https://sourceforge.net/forum/message.php?msg_id=2862995\). 

                  This has been fixed since version 0.35 and I have added a class tonight that will parse out the files from the command line and pass them to the library.  I have confirmed that files are committed to the repository so I am considering this thread closed.

                   
                  • cvshelp
                    cvshelp
                    2005-03-08

                    Hi,

                    I'm developing a cvs client using the v0.36 of the library but I have problems with the commit command. I execute the command like the checkout command in Messages example. Folders on WorkingDirectory are empty so there's no commit to execute, and I don't know how populate this folder.

                    Any help would be greatly appreciated. Thanks,

                    Laia

                     
    • Angus Black
      Angus Black
      2004-11-18

      I am also having problems i can connect fine and check anythin out, but i can't commmit or import a new module.

      I am currently just trying to get it to import a single directory with one text file in. Below is the code i am using:

      CVSServerConnection temptheCVSConnection = new CVSServerConnection();
                  ICSharpCode.SharpCvsLib.Misc.CvsRoot tempcvsRoot =
                      new ICSharpCode.SharpCvsLib.Misc.CvsRoot(":pserver:angus@mlan.ict.ru.ac.za:/home/angus/PVS/CVSROOT");
                  WorkingDirectory tempworkingDir = new WorkingDirectory(tempcvsRoot,"C:\\NewPVSProject","temp");
                 
                  temptheCVSConnection.Connect(tempworkingDir,password);
                  ICommand importNewProjCommand =  new ImportModuleCommand(tempworkingDir,"imported");

                  importNewProjCommand.Execute(temptheCVSConnection);
                  temptheCVSConnection.Close();
                  MessageBox.Show("Done");

      The directory that i am trying to import is in NewPVSProject and is called temp and has one text file in it. When i execute the code all it does is create a directory in the repository and does'nt take the text file with it.

      Is there anything wrong with what i am doing?

      Any help would be greatly appreciated.

      Cheers
      Angus

       
      • Hi Angus,

        If you populate the Folders variable on the WorkingDirectory object with the files you want to import before calling the import command's execute.

        Cheers,

        Clayton

         
      • Hi Again,

        I have implemented a console class that calls the ImportModuleCommand, it is in cvs.  I had to make a couple of modifications:
            1) One to retrofit the Folders object added - should not be an issue if you are using an older release
            2) Removed the Case request - this may be what is causing the import command to fail on your local machine.  I was testing with cvs on linux when I was working on this command last.  Testing on cvsnt caused the command to fail.

        I imagine that the commit command might be the same and will try to update it in the coming week.

        Cheers,

        Clayton

         
    • nemezis rules
      nemezis rules
      2004-11-19

      From the log of the cvs.exe command line client it appears as if the problem has something to do with the Tag file. It throws an file not found exception.

       
    • Hi Lasse,

      I checked in a fix to the commit parser in the Console application that fixes the commit issue.  The issue seems to be that the Entries file was not being loaded (which is why the version was 0).  The console commands are still missing a nice regex to parse the file parameters so the patch I added merely grabs everything below the working directory and parses for now.  It should give the general idea though.

      I also added a couple of convenience methods on the Cvs management objects (i.e. Entries.Load, etc.) they basically just wrap calls to the Manager.  They seemed easier to use but let me know :-).

      Cheers,

      Clayton

       
    • r0dy
      r0dy
      2004-12-02

      I also have problems to commit files.
      It says "no version here, do cvs checkout first".
      Any commit example code, anyone ?

       
    • r0dy
      r0dy
      2004-12-02

      When i do as i told on the mailing list, i get this response:

      Root Valid-responses valid-requests Directory Max-dotdot Static-directory Sticky Entry EntryExtra Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify NotifyUser Questionable Utf8 Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Rename VirtualRepository expand-modules ci co chown setowner setperm chacl setacl lsacl passwd info update diff log rlog add remove update-patches status ls rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors init annotate rannotate noop version Rootless-stream-modification Kerberos-encrypt Gssapi-encrypt Protocol-encrypt Gssapi-authenticate Protocol-authenticate read-cvsrc read-cvsrc2 read-cvsignore read-cvswrappers Error-If-Reader        Valid-RcsOptions
      - ( ValidRequestsResponse )

      Then i get an error response:
      cvs server: M  unrecognized request `'

      I'm hopeless...