Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

FileManager: Version Control Browsing

<< < (3/6) > >>

dmoore:

--- Quote from: killerbot on February 11, 2015, 10:48:24 am ---Some requests ? suggestions ?  (doing this via svn)

--- End quote ---

Of course. SVN is the problem child. For example, I still need to figure out how to handle password prompts every time I browse the log  ???


--- Quote ---- can a history entry be made (now it is available, via the diff against)

--- End quote ---

As in the history of commits? Not sure what you have in mind.


--- Quote ---- but the diff, when you get it via right click context menu is containing all commits, would be more nice to have only the commits impacting this file

--- End quote ---

Yes, planning to add the feature to specify changes only affecting a certain file in the commit browser dialog and to use that by default for the diff.


--- Quote ---- in the history (diff), select 2 revisions and see the diff between those 2
- some way of instructing that the diff  should be send to meld (instead of the patch diff notation)

--- End quote ---

Yes, eventually


--- Quote ---Is there a way when in the project tree to end up directly to the integration which is now in the Files tab ? Or as step in between : right click on a file in the project tree, and tell it to go to the corresponding place in the files tree (so no need to search there for the file first) ?

--- End quote ---

I do plan to integrate something into the project tree, but not sure how extensive that will be just yet. Right now you can right click on a project and open the corresponding directory in the file browser and I could probably do something similar for individual files. The logic is trickier if the repo is say, /projects, the project file is as project/project1/project1.cbp, but the file is /project1/src/module1/module1.cpp.  Should the filemanager set the root to /projects and then expand the subdirectories to show and center on the location of the file? The logic for that is a little tricky because you need to figure out which repo the file is in.

By the way, the show changed files only also makes it easier to find changed files.

MortenMacFly:
My 2 cents for today...:
1.) I don't understand the "favourites" system: I can setup favourites (that works nice), but how do I access them?
2.) Crash: Whenever I try to set some folder to be the root folder I get a crash pointing to the FileManager plugin.

MortenMacFly:

--- Quote from: MortenMacFly on February 11, 2015, 05:45:51 pm ---2.) Crash: Whenever I try to set some folder to be the root folder I get a crash pointing to the FileManager plugin.

--- End quote ---
Some more details:
It happens in the marked line:
Updater::~Updater()
{
    if(m_exec_proc)
    {
        m_exec_timer->Stop(); // << crash here!
        delete m_exec_timer;
        m_exec_proc->Detach();
        m_exec_cond->Signal();
        m_exec_mutex->Unlock();
    }
    if(IsRunning())
    {
        m_kill=true;
        Wait();
    }
}

...and m_exec_timer is "0xbaadf00d" -> unallocated.

It happens on folders that are under version control and where the VCS executables are not found (in the debug build I see: "Execution of command XXXX failed...").

MortenMacFly:

--- Quote from: MortenMacFly on February 11, 2015, 05:50:53 pm ---...and m_exec_timer is "0xbaadf00d" -> unallocated.

--- End quote ---
Naaah... fixed in SVN.

You'd better remember to ALWAYS initialise pointer variables in the constructor in the future... ;-)

MortenMacFly:

--- Quote from: MortenMacFly on February 11, 2015, 05:58:09 pm ---Naaah... fixed in SVN.

--- End quote ---
...but I'll give you another one: If in debug mode, a missing VCS executable will raise a wxExecute error dialog that freezes C::B completely.

My suggestion:
If you handle the wxExecute result yourself (which seems to be the case), use wxLogNull to avoid such freezes, like:

{
  wxLogNull ln;
  h_result = wxExecute(...)
}

To handle all the different wxExecute calls across the plugin (I counted at least 15) you should put them into one place/method which you call with a parameter what command to call exactly.

Maybe you share my thoughts...?!

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version