Alaska Software Inc. - storage of currently opened files in xpj file
Username: Password:
AuthorTopic: storage of currently opened files in xpj file
Thomas Braun
storage of currently opened files in xpj file
on Tue, 13 Jan 2004 22:02:13 +0100
Hi Alaska dev team,

how do you plan to support version control systems if user specific
settings like the currently opened files are stored in the project file?

In our current scenario at Wegasoft, we also store the xpj files via Visual
SourceSafe.

So if the currently opened files are stored in the XPJ file, I can't use
VSS to interchange xpj files between developers, because I will always
influence others current files list. So there would be no way to use VX in
this case.

IMO settings like this should be stored outside the project file (ini file,
XML file... whatever you like 

Thomas

Xbase++ FAQ : www.software-braun.de/xbfaq/xbfaq.htm
But then you could make ANY word derogatory by INTENDING it to be.
(Say the word "cabbage" and it stirs no emotion:glare at somebody
and throw in an expletive or two  and it's bound to offend people.)
		-- from alt.appalachian
Klemens LichterRe: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 01:48:34 +0100
Hi Thomas,

"Thomas Braun" <spam@software-braun.de> schrieb im Newsbeitrag
news:XrJ9ddh2DHA.2012@S15147418...
> Hi Alaska dev team,
>
> how do you plan to support version control systems if user specific
> settings like the currently opened files are stored in the project file?
>
> In our current scenario at Wegasoft, we also store the xpj files via
Visual
> SourceSafe.
>
> So if the currently opened files are stored in the XPJ file, I can't use
> VSS to interchange xpj files between developers, because I will always
> influence others current files list. So there would be no way to use VX in
> this case.
>
> IMO settings like this should be stored outside the project file (ini
file,
> XML file... whatever you like 

This is a good question. This first needs that VX is able to know each
developper working on the project. So each develloper has to have a unique
number or key or something else handled within VX. The next step is to have
sections within the XPJ-file starting with the developpers unique key and
within these sections VX can store developper specific informations like
last opened files.
HTH
Klemens
Thomas Braun Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 10:29:56 +0100
Klemens Lichter:

> This is a good question. This first needs that VX is able to know each
> developper working on the project. So each develloper has to have a unique
> number or key or something else handled within VX.

VSS manages the settings via the machine name in a separate ini file.

> The next step is to have
> sections within the XPJ-file starting with the developpers unique key and
> within these sections VX can store developper specific informations like
> last opened files.

IMHO, this kind of information should not be stored inside the project
file. It only bloats the file and makes a diff via VSS impossible (to see
the changes made by any developer).

I think designing the IDE without having developer teams and source
management software in mind may cause bigger changes to VX in the future.

What IMO is needed is:

Storing editor states (and maybe other information that does not belong
into the project file) per machine and project in a location on each local
machine (preferably not the registry )

Thomas Braun
Klemens LichterRe: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 11:12:32 +0100
"Thomas Braun" <spam@wegasoft.de> schrieb im Newsbeitrag
news:z7txisugd0tb.jm0x1beb9dg4.dlg@40tude.net...
> Klemens Lichter:
>
> > This is a good question. This first needs that VX is able to know each
> > developper working on the project. So each develloper has to have a
unique
> > number or key or something else handled within VX.
>
> VSS manages the settings via the machine name in a separate ini file.

OK this is anoter good way.

> > The next step is to have
> > sections within the XPJ-file starting with the developpers unique key
and
> > within these sections VX can store developper specific informations like
> > last opened files.
>
> IMHO, this kind of information should not be stored inside the project
> file. It only bloats the file and makes a diff via VSS impossible (to see
> the changes made by any developer).
>
> I think designing the IDE without having developer teams and source
> management software in mind may cause bigger changes to VX in the future.
>
> What IMO is needed is:
>
> Storing editor states (and maybe other information that does not belong
> into the project file) per machine and project in a location on each local
> machine (preferably not the registry )

OK, storing in a sort of INI file or maybe not XPJ but XPU ( [X]base
[P]roject [U]sersettings) is a way. But why storing on local disk? Storing
within the projects directorystructure makes it easy to save together with
source etc. I hate local savings of settings belonging to projects that
store oll their other data in  shared network drives. Local settings are
good for to tell VX or other Programms where to find the projects files when
VX is started on this specific PC, but all other data containing to a
project have to be stored there.
But OK, in VX there are so many things configurable, so why not make this
configurable too.

Klemens
Andreas Herdt Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 11:49:38 +0100
Hi All,

We at Alaska use the CVS and we have observed exactly the same issues
you describe.

I currently use a work around and remove all individual settings from
the project prior checking it into the repository.
This way I have realized that there are differences with the xpj file
in very rare cases. The first difference pops up when a project is
saved for the first time by vx, since  target handling is a bit
different then with pbuild (allthough they are compatible). Any further
difference result from an added or removed file (practically this
is not the case very often).

Like I said, this requires investigation what the real differences are 
with the project.

We are not happy with this situation either, BUT:


    The VX is currently not said to have dev team capabilities.


Currently we do not know the best way to solve the issues that come with 
many people access the same thing. What we know is:

   o Registry is a bad dream, somehow.
   o Having all personell settings in the project file is a good
     solution (for one man dev teams).
   o We need more then one personal setting for a project
     ( for example to have different groups of breakpoints )
   o Settings located in another place then the project file
     is an idea I do not like (You are free to discuss this).
   o We need integration to version control systems.

Regards
   Andreas Herdt
   [Alaska Research & Development]

Klemens Lichter wrote:

> "Thomas Braun" <spam@wegasoft.de> schrieb im Newsbeitrag
> news:z7txisugd0tb.jm0x1beb9dg4.dlg@40tude.net...
> 
>>Klemens Lichter:
>>
>>
>>>This is a good question. This first needs that VX is able to know each
>>>developper working on the project. So each develloper has to have a
> 
> unique
> 
>>>number or key or something else handled within VX.
>>
>>VSS manages the settings via the machine name in a separate ini file.
> 
> 
> OK this is anoter good way.
> 
> 
>>>The next step is to have
>>>sections within the XPJ-file starting with the developpers unique key
> 
> and
> 
>>>within these sections VX can store developper specific informations like
>>>last opened files.
>>
>>IMHO, this kind of information should not be stored inside the project
>>file. It only bloats the file and makes a diff via VSS impossible (to see
>>the changes made by any developer).
>>
>>I think designing the IDE without having developer teams and source
>>management software in mind may cause bigger changes to VX in the future.
>>
>>What IMO is needed is:
>>
>>Storing editor states (and maybe other information that does not belong
>>into the project file) per machine and project in a location on each local
>>machine (preferably *not* the registry <g>)
> 
> 
> OK, storing in a sort of INI file or maybe not XPJ but XPU ( [X]base
> [P]roject [U]sersettings) is a way. But why storing on local disk? Storing
> within the projects directorystructure makes it easy to save together with
> source etc. I hate local savings of settings belonging to projects that
> store oll their other data in  shared network drives. Local settings are
> good for to tell VX or other Programms where to find the projects files when
> VX is started on this specific PC, but all other data containing to a
> project have to be stored there.
> But OK, in VX there are so many things configurable, so why not make this
> configurable too.
> 
> Klemens
> 
>
Andreas Herdt Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 12:46:34 +0100
Hi All,

Just for notification:
This thread has just started some discussion at our place resulting
in a design meeting.

For next release we plan to have
   OPENFILES
   BREAKPOINT
   WATCHPOINT
   HOSTPROCESS
   RUNPARAM
   ...

stored in a different file then xpj.
Thus we have a clear seperation of what is a project and what is
a personel setting.

Hope that helps.

Regards
   Andreas Herdt
   [Alaska Research & Development]

Andreas Herdt wrote:

> Hi All,
> 
> We at Alaska use the CVS and we have observed exactly the same issues
> you describe.
> 
> I currently use a work around and remove all individual settings from
> the project prior checking it into the repository.
> This way I have realized that there are differences with the xpj file
> in very rare cases. The first difference pops up when a project is
> saved for the first time by vx, since  target handling is a bit
> different then with pbuild (allthough they are compatible). Any further
> difference result from an added or removed file (practically this
> is not the case very often).
> 
> Like I said, this requires investigation what the real differences are 
> with the project.
> 
> We are not happy with this situation either, BUT:
> 
> 
>    The VX is currently not said to have dev team capabilities.
> 
> 
> Currently we do not know the best way to solve the issues that come with 
> many people access the same thing. What we know is:
> 
>   o Registry is a bad dream, somehow.
>   o Having all personell settings in the project file is a good
>     solution (for one man dev teams).
>   o We need more then one personal setting for a project
>     ( for example to have different groups of breakpoints )
>   o Settings located in another place then the project file
>     is an idea I do not like (You are free to discuss this).
>   o We need integration to version control systems.
>
Thomas Braun Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 16:47:04 +0100
Andreas Herdt:

> We at Alaska use the CVS and we have observed exactly the same issues
> you describe.

Hehe, so at least you can feel with me 

> I currently use a work around and remove all individual settings from
> the project prior checking it into the repository.

Urghhhh... I wouldn't call this a "workaround", but rather a big PITA 

> We are not happy with this situation either, BUT:
>
>     The VX is currently not said to have dev team capabilities.



I remember the situation from my VO experiences, IIRC they needed the time
between 1.0 and 2.0 to deliver real dev team capabilities.

The situation is a bit different here because VX already has the open
plugin interface, so at least we can implement checkin/checkout
functionality from within the IDE quite fast.

But to be able to use this, the correct base logic (like the "files opened
in session" problem) must be settled before tu much other things depends on
the wrong way of doing things... each hour of planning time saves 10 hours
of changing the progam 

> Currently we do not know the best way to solve the issues that come with
> many people access the same thing. What we know is:
>
>    o Registry is a bad dream, somehow.

Yes, it *IS*. BTW, Multiedit doesn't use the registry for other purposes
than installation issues.

>    o We need more then one personal setting for a project
>      ( for example to have different groups of breakpoints )

Yes, IMO this can all be stored in a separate personal file in each
developers working dir (where the xpj file resides).

This way you can easily avoid checking personal file into the VCS.

>    o Settings located in another place then the project file
>      is an idea I do not like (You are free to discuss this).

I agree!

>    o We need integration to version control systems.

From my point of view, desperately 

The question is if going the Microsoft way (using their source control
provider interface) is the right way... does CVS or other systems support
this interface (or only Visual Sourcesafe)?

Thomas Braun
Thomas Braun Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 16:10:03 +0100
Klemens Lichter:

> OK, storing in a sort of INI file or maybe not XPJ but XPU ( [X]base
> [P]roject [U]sersettings) is a way. But why storing on local disk? Storing
> within the projects directorystructure makes it easy to save together with
> source etc.

My projectstructure resides on a local drive, so I can take work home (or
to a clients site).

The only storage for our sources that is on the server is the SourceSafe
database. Everything else is on each developers local drive (simply because
it is much faster doing a fulltext search or the compile/link cycle on a
local drive than a networked one...

> I hate local savings of settings belonging to projects that
> store oll their other data in  shared network drives.

Multiedit has status file that store all information per working dir and
you can choose where to store them and how to handle them.

I attach a small png screenshot what kind of settings you can have.

Thomas Braun


mewstatus.png
Phil Ide
Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 11:35:35 +0000
Klemens,

> This is a good question. This first needs that VX is able to know each
> developper working on the project. So each develloper has to have a unique
> number or key or something else handled within VX. The next step is to have
> sections within the XPJ-file starting with the developpers unique key and
> within these sections VX can store developper specific informations like
> last opened files.

Aaarrgghhh! NO!

The IDE should define a project directory (local) for storing workstation
specific info (e.g. which files were opened, which lines were current,
etc.)

The IDE should also specify a project directory (network) for shared files.

So a possible tree for a local-only system might look like this:

VX +
   +--Projects+
              +--MyProj+
              |        +LocalProj
              |        +NetworkProj
              +--AnotherProj+
                            +LocalProj
                            +NetworkProj

In a multi-develper env, NetworkProj should actually be on a network share.

Regards,

Phil Ide

***************************************
* Xbase++ FAQ, Libraries and Sources: *
* goto: http://www.idep.org.uk/xbase  *
***************************************

I want it all or nothing. Or maybe some.
Andreas Herdt Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 13:24:15 +0100
I am not shure whether I've got the idea in detail,
so let me explain how I would do it (in a mannor that it can be done
for next revision):

There is one "Master Project File" in the project directory.
This file is maintained by VX and it has got a section for each project
that was opened in VX in the past and is still present when the VX is 
started up.

Let's say in ..\xppw32\projects\project.xpm (xbase project master 

[g:\source\test\bla\project.xpj]       project section
[test.exe]                             target section
   OPENFILES   = test.prg
   BREAKPOINT  = test.prg:1=1
   WATCHPOINT  = test.prg:MyFunc()
   HOSTPROCESS =
   RUNPARAM    = a b c d e f
[target\test3.dll]                     target section
   OPENFILES   = dllmain.prg,test.prg
   RECENTFILE  = dllmain.prg
   BREAKPOINT  = dllmain.prg:4=2
   WATCHPOINT  = test.prg:YourFunc()
   HOSTPROCESS = test.exe
   RUNPARAM    = g h i j k l m

[f:\test\project.xpj]                 project section
[test.exe]
   OPENFILES   = MyFile
   ...

Thus, what is shared between developers is the project file.
There the information resides what files belong to the project.

On the other hand, individual settings are collected at one location
per machine.

Would something like this fullfill your requirements?

Regards
   Andreas Herdt
   [Alaska Research & Development]

Phil Ide wrote:

> Klemens,
> 
> 
>>This is a good question. This first needs that VX is able to know each
>>developper working on the project. So each develloper has to have a unique
>>number or key or something else handled within VX. The next step is to have
>>sections within the XPJ-file starting with the developpers unique key and
>>within these sections VX can store developper specific informations like
>>last opened files.
> 
> 
> Aaarrgghhh! NO!
> 
> The IDE should define a project directory (local) for storing workstation
> specific info (e.g. which files were opened, which lines were current,
> etc.)
> 
> The IDE should also specify a project directory (network) for shared files.
> 
> So a possible tree for a local-only system might look like this:
> 
> VX +
>    +--Projects+
>               +--MyProj+
>               |        +LocalProj
>               |        +NetworkProj
>               +--AnotherProj+
>                             +LocalProj
>                             +NetworkProj
> 
> In a multi-develper env, NetworkProj should actually be on a network share.
> 
> Regards,
Phil Ide
Re: storage of currently opened files in xpj file
on Wed, 14 Jan 2004 15:28:16 +0000
Andreas,

> Thus, what is shared between developers is the project file.
> There the information resides what files belong to the project.
> 
> On the other hand, individual settings are collected at one location
> per machine.
> 
> Would something like this fullfill your requirements?

Yes.

Regards,

Phil Ide

***************************************
* Xbase++ FAQ, Libraries and Sources: *
* goto: http://www.idep.org.uk/xbase  *
***************************************

Always forgive your enemies. They -HATE- that!