Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-1740

javahl - add stop on copy flag for logMessages

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • all
    • nonblocking
    • bindings_javahl
    • None

    Description

      We really need a flag on this method so we can allow users to see logs of
      commits made to the file before any copy has been done. 
      
      I see this as essential, as users coming from CVS want to see their history come
      with them when they move a file.
      
      I was going to generate a patch and test it, but it's taking too long to setup
      an env to compile .. so here is a starting point.
      
      Index: native/SVNClient.cpp
      ===================================================================
      --- native/SVNClient.cpp	(revision 8615)
      +++ native/SVNClient.cpp	(working copy)
      @@ -368,7 +368,7 @@
       	m_prompter = prompter;
       }
       
      -jobjectArray SVNClient::logMessages(const char *path, Revision &revisionStart,
      Revision &revisionEnd)
      +jobjectArray SVNClient::logMessages(const char *path, Revision &revisionStart,
      Revision &revisionEnd, bool stopOnCopy)
       {
       	std::vector<jobject> logs;
           Pool pool;
      @@ -383,7 +383,7 @@
                               revisionStart.revision (),
                               revisionEnd.revision (),
                               0, // not reverse by default
      -                        1, // strict by default (not showing cp info)
      +                        stopOnCopy, // strict by default (not showing cp info)
                               messageReceiver, &logs, ctx, pool.pool());
       	if(JNIUtil::isJavaExceptionThrown())
       	{
      Index: native/org_tigris_subversion_javahl_SVNClient.cpp
      ===================================================================
      --- native/org_tigris_subversion_javahl_SVNClient.cpp	(revision 8615)
      +++ native/org_tigris_subversion_javahl_SVNClient.cpp	(working copy)
      @@ -245,7 +245,7 @@
        * Signature:
      (Ljava/lang/String;Lorg/tigris/subversion/javahl/Revision;Lorg/tigris/subversion/javahl/Revision;)[Lorg/tigris/subversion/javahl/LogMessage;
        */
       JNIEXPORT jobjectArray JNICALL
      Java_org_tigris_subversion_javahl_SVNClient_logMessages
      -  (JNIEnv* env, jobject jthis, jstring jpath, jobject jrevisionStart, jobject
      jrevisionEnd)
      +  (JNIEnv* env, jobject jthis, jstring jpath, jobject jrevisionStart, jobject
      jrevisionEnd, jboolean jstopOnCopy)
       {
       	JNIEntry(SVNClient, logMessages);
       	SVNClient *cl = SVNClient::getCppObject(jthis);
      @@ -269,7 +269,7 @@
       	{
       		return NULL;
       	}
      -	return cl->logMessages(path, revisionStart, revisionEnd);
      +	return cl->logMessages(path, revisionStart, revisionEnd, jstopOnCopy ?
      true:false);
       }
       
       /*
      Index: native/SVNClient.h
      ===================================================================
      --- native/SVNClient.h	(revision 8615)
      +++ native/SVNClient.h	(working copy)
      @@ -65,7 +65,7 @@
       	void remove(Targets &targets, const char *message,bool force);
       	void notification(Notify *notify);
       	jlong checkout(const char *moduleName, const char *destPath, Revision
      &revision, bool recurse);
      -	jobjectArray logMessages(const char *path, Revision &revisionStart, Revision
      &revisionEnd);
      +	jobjectArray logMessages(const char *path, Revision &revisionStart, Revision
      &revisionEnd, bool stopOnCopy);
       	void setPrompt(Prompter *prompter);
       	void password(const char *password);
       	void username(const char *username);
      Index: src/org/tigris/subversion/javahl/SVNClient.java
      ===================================================================
      --- src/org/tigris/subversion/javahl/SVNClient.java	(revision 8615)
      +++ src/org/tigris/subversion/javahl/SVNClient.java	(working copy)
      @@ -111,8 +111,9 @@
            * @param path
            * @param revisionStart
            * @param revisionEnd
      +     * @param stopOnCopy
            */
      -    public native LogMessage[] logMessages(String path, Revision revisionStart,
      Revision revisionEnd) throws ClientException;
      +    public native LogMessage[] logMessages(String path, Revision revisionStart,
      Revision revisionEnd, boolean stopOnCopy) throws ClientException;
           /**
            * Executes a revision checkout.
            * @param moduleName name of the module to checkout.
      

      Original issue reported by dbradby

      Attachments

        Activity

          People

            Unassigned Unassigned
            subversion-importer Subversion Importer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: