[Qt-creator] User settings file and collaborative work

Tobias Hunger tobias.hunger at digia.com
Tue Feb 25 11:02:10 CET 2014


Hi Barbara,

On 25.02.2014 09:03, Barbara Post wrote:
> Initially posted to qt-project.org forum, now bringing the subject here,
 > thanks to a suggestion.

Yeap, this is a better place to bring up your feature requests.

> Reading this old closed feature request
 > (https://bugreports.qt-project.org/browse/QTCREATORBUG-7888)

That one is about creator writing the .user file more often than the 
reporter thinks is necessary. I fail to see how that connects to the 
rest of your mail.

> I think of basic project situation which I work with right now:
>
> -  I develop a custom Qt plugin
> -  I have to copy my dll to a specific folder for execution by a plugins host

That is a task the build system should handle (via "make install" or 
similar that should then go into the deploy configuration).

> - I have to run a custom executable to launch this plugins host
 > program and use my custom plugin

Yes, it would be nice if we could suggest a custom command to run in 
case none is set up for the project yet.

> -  An environment variable is used for base path of commands
 > configured in build/run settings

Who sets this variable?

> So if anyone else works on project it would be fine that:
>
> - when reconfiguring project since his/her kit is slightly different from
 >   mine, all the other things are kept
 >   (build/run custom commands). I didn't verify what happens

If the kits are identical (incl. the Id, which you can set via the 
sdktool only!), then this should work using the .shared files. So let's 
concentrate on the case where the kits differ.

Currently we have a kit id in the .user file and nothing else. So there 
is no way to know what a kit looked like that somebody else referenced 
in a .user file. Adding that information is not of course possible though.

Let's assume we had full information on the kits that were used by the 
instance that wrote the .user file. How can we decide which of our kits 
are the best match to those found in the .user file?

Which of our kits are "slightly different" (as in we want to copy the 
settings from the .user file) and which are "completely different" (as 
in we want to forget those settings) compared to those found in a .user 
file?

Is a Qt 5.0.0 windows MSVC2012 kit "slightly different" (as in we want 
to copy settings) from a desktop Qt 4.8.5 windows MSVC2012 kit?

What about Qt 5.2.1 for blackberry and a Qt 5.2.1 for ubuntu phone kit?

Qt 5.2.1 on the Mac and Qt 5.2.0 on Linux?

Qt 5.2.1 windows MSVC2012 and Qt 5.2.1 windows mingw?

> - timestamp change wouldn't be effective so often, only when there
 >    are modifications, this would be better when
 >    working with version control.

Do not check in .user files into your version control system. Use 
.shared files for those settings that can be shared. This currently does 
*not* include the kits though.

> So my suggestion is to move commands to another file than the user
 > settings, surely in a custom syntax in .pro file.

Like the .shared file?

Creator supports several build systems, so I would really appreciate not 
mixing our settings into the build system files. We would need to have 
several sets of code to put that information into the build systems and 
to retrieve it again.

 > This way we could
 > also have build/run commands way more flexible (use of environment
 > variables, not just elimited to sourceDir andbuildDir).

Creator actually does support quite a bit more than that.

> And keep other things in .pro.user that would be safely ignored by
 > version control without loosing information.
>
> This idea came to me immediately after playing with build/run settings,
 > I told myself, duh this is not as convenient as in Visual Studio
 > (where I daily practice C#).

You are probably right, but this cross-platform thing makes this whole 
thing a bit harder. Of course that is no excuse not to do the right 
thing(TM).

Best Regards,
Tobias

-- 
Tobias Hunger, Senior Software Engineer - Digia, Qt
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin. USt-IdNr: DE 286 306 868
Registergericht: Amtsgericht Charlottenburg, HRB 144331 B



More information about the Qt-creator mailing list